我正在使用正则表达式在字符串中查找一个或多个单词。 例如:
if(preg_match("~\bbet\b~",$text) !== false) // want to find "bet" in string
我想检查该字符串($ text)中是否有 bet
但是,如果$ text =“此字符串和该字符串之间存在差异”,它将返回true。
现在,我想要,例如,这些将返回true:
$ text =“我敢打赌他是处女!”
$ text =“打赌,您很高兴自己飞到了那里。”
但这句话将返回false
$ text =“此字符串与该字符串之间存在差异”
或者为硬字符串添加另外1个示例:
我想在字符串中找到“ hi ” 但不是此
中的嗨如果
,它将返回true。$ text =“ hi”;
但如果
,则返回false$ text =“ this”;
答案 0 :(得分:0)
为了使bet
返回true,我们可以使用带有单词边界和i
标志的前瞻,其表达式类似于:
.*(?=\bbet\b).*
$re = '/.*(?=\bbet\b).*/mi';
$str = 'I bet he\'s a virgin!
Bet you\'re glad you flew out there.
I betty he\'s a virgin!
Betty you\'re glad you flew out there.';
preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);
var_dump($matches);
我们可以类似地检查hi
和this
:
.*(?=\bhi\b).*
$re = '/.*(?=\bhi\b).*/mi';
$str = 'there is difference between this string and that string
hi there, is difference between that string and other string false?
';
preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);
var_dump($matches);