正则表达式用于在字符串中出现单词但不包含包含该单词的单词

时间:2016-07-13 00:36:25

标签: php regex

我需要一个正则表达式来查找字符串中的单词匹配,而不管大小写,但不是更大的单词,而目标单词是其中的一部分。

例如,如果目标词是" apple",正则表达式应该在以下字符串中找到它:

  

"我找到了一个苹果。"

     

" Apple,它在地面上"

     

"那个答案很好"

以下字符串:

  

"许多苹果"

     

"黄菠萝"

我使用PHP并且我已经搜索过并找到以下正则表达式:

preg_match("\W*((?i)apple(?-i))\W*",$string)

但由于我收到以下错误,似乎存在问题:

  

警告:preg_match():分隔符不能是字母数字或反斜杠

正确的正则表达式可以解决这个问题吗?

1 个答案:

答案 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