单词查找器正则表达式失败

时间:2015-10-15 08:35:52

标签: php regex preg-match

我正在使用此模式检查字符串中是否存在某些字词:

/\b(apple|ball|cat)\b/i

它适用于此字符串cat ball apple

但不在no spaces catball smallapple

如何修改模式,使单词即使与其他单词组合,即使没有空格也能匹配?

1 个答案:

答案 0 :(得分:2)

从正则表达式中删除\b\b将匹配单词边界,并且您希望匹配不是完整单词的字符串。

您也可以删除捕获组(由()表示),因为它不再需要。

使用

/apple|ball|cat/i

Regex Demo

IDEONE PHP demo

$re = "/apple|ball|cat/i"; 
$str = "no spaces catball smallapple";
preg_match_all($re, $str, $matches);
print_r($matches[0]);

结果:

[0] => cat
[1] => ball
[2] => apple