我需要做的是获取整个输入字符串,如果它不包含另一个字符串。
为了更清楚(PHP代码,并不重要,正则表达式很重要):
假设我们想要否定的字符串是“home”。
preg_match($unknownReg, "This is a home bla bla", $part);
echo $part; // I need to echo "";
preg_match($unknownReg, "This is a car", $part);
echo $part; // I need to echo "This is a car"
我知道strpos(对于php)这样的解决方案,但是我想要一个reg(因为不知道它是从内部烧掉:)))。
答案 0 :(得分:2)
你可以尝试这种模式:
^.*(?<!home.*)$
或者这个:
^(?!.*home).*$
两种模式都匹配任何字符序列,只要它在字符串中的任何位置都不包含home
即可。例如:
"This is a home bla bla" // no match
"This is a car" // match
您可以测试第二种模式here。
答案 1 :(得分:0)
纯粹的否定?成为或(将):
!preg_match("#home#", "This is a home bla bla", $part);