我需要一个正则表达式来查找字符串中的单词匹配,而不管大小写,但不是更大的单词,而目标单词是其中的一部分。
例如,如果目标词是" apple",正则表达式应该在以下字符串中找到它:
"我找到了一个苹果。"
" Apple,它在地面上"
"那个答案很好"
但不以下字符串:
"许多苹果"
"黄菠萝"
我使用PHP并且我已经搜索过并找到以下正则表达式:
preg_match("\W*((?i)apple(?-i))\W*",$string)
但由于我收到以下错误,似乎存在问题:
警告:preg_match():分隔符不能是字母数字或反斜杠
正确的正则表达式可以解决这个问题吗?
答案 0 :(得分:1)
您需要添加/
来分隔正则表达式。所以解决方案可能如下所示:
preg_match_all('/\bapple\b/i', $string, $matches);
$count = count($matches[0]); // group 0 are the full matches
i
修饰符不区分大小写,而不是g
修饰符,我们必须使用preg_match_all
。