如何匹配任何内容都不包含使用RegEx的特定单词

时间:2013-06-18 15:53:51

标签: php regex

如何匹配任何东西,使用RegExp

不包含特定单词

例: 匹配任何字符串不包含'aabbcc'

bbbaaaassdd // Match this
aabbaabbccaass // Reject this

5 个答案:

答案 0 :(得分:3)

如果您只是在这个字符序列之后,请不要使用正则表达式。使用strpos()

if (strpos('aabbaabbccaass', 'aabbcc') !== false) {
    echo 'Reject this.'
}

注意:请务必阅读手册中有关strpos()返回值的警告。

答案 1 :(得分:2)

您可以使用否定前瞻:

(?!.*?aabbcc)^.*$

现场演示:http://www.rubular.com/r/4Exbf7UdDv

PHP代码:

$str = 'aabbaabbccaass'; //or whatever
if (preg_match('/(?!.*?aabbcc)^.*$/', $str))
   echo "accepted\n";
else
   echo "rejected\n";

答案 2 :(得分:2)

尝试这样做以避免一些字母序列:

^((?!aabbcc).)*$

答案 3 :(得分:1)

试试这个:

if(preg_match('/aabbcc/', $string) == 0) {
   [ OK ]
}
else {
   [ NOT OK ]
}

答案 4 :(得分:1)

您可以使用它来描述不包含 aabbcc 的子字符串:

(?>[^a]++|a(?!abbcc))*

对于整个字符串,只需添加锚点(^ $