正则表达式问题

时间:2010-06-29 14:20:14

标签: php regex

我无法让preg_match在字符串的任何位置找到单词。

我有这个:

$bad_words = "/(\bsuck\b)|(\bsucks\b)|(\bporn\b)|";
$text = "sucky";

if(preg_match($bad_term_filter, trim($feedback_review_comment)) != 0 )

我需要返回true,但只有完全匹配才会返回true,例如

 $text = "suck";

返回true

1 个答案:

答案 0 :(得分:1)

\b是单词边界锚。看起来你试图找到某个单词是否出现在任何地方而不管单词边界,所以我认为你想要的模式只是:

suck|porn

你也不想要最后一个空的替代,因为那将匹配所有东西(所有字符串都包含一个空字符串)。无需明确查找sucks,因为它已包含suck

参考

相关问题