问题
I want to find the whole words in text not a sub string. I have written following code.
$str = 'its so old now.';
$a = 'so';
if (stripos($str,$a) !== false) {
echo 'true';
} else {
echo 'false';
}
str1 = 'its so old now.';
str2 = 'it has some issue.';
I want to find word 'so' in text. it give true in both the string. But I want true in first case only because in second string 'so' contains in 'some' words.
Thanks in advance
回答1:
\b
can be used in regex to match word boundaries.
\bso\b
Should only match so
when it is on it's own:
if(preg_match('/\bso\b/',$str)){
echo "Matches!";
}
Note that preg_match
returns 0
on no match and false
on error so you may wish to check for these values. The above is also case insensitive. You can use /\bso\b/i
to ignore case.
来源:https://stackoverflow.com/questions/37786407/php-find-word-in-text-using-regular-expression