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

Php 单词查找器正则表达式失败,php,regex,preg-match,Php,Regex,Preg Match,我使用此模式检查字符串中是否存在某些单词: /\b(apple|ball|cat)\b/i 它在这个字符串上工作cat-ball-apple 但不是在无空格猫球smallapple上 如何修改模式,使单词匹配,即使它们与其他单词组合,即使没有空格 从正则表达式中删除\b\b将匹配单词边界,并且您希望匹配不是完整单词的字符串 您还可以删除捕获组(由()表示),因为不再需要它 使用 安: 结果: [0] => cat [1] => ball [2] => apple 删除\b

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

/\b(apple|ball|cat)\b/i
它在这个字符串上工作
cat-ball-apple

但不是在
无空格猫球smallapple上


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

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

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

使用

安:

结果:

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

删除\b。它的意思是边界。这正是你不需要的!我还将删除捕获组-不再需要它。
$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