2

我需要做的是获取整个输入字符串,如果它不包含另一个字符串。

为了更清楚(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 (因为不知道它是从内部烧毁的 :)))。

4

2 回答 2

2

你可以试试这个模式:

^.*(?<!home.*)$

或者这个:

^(?!.*home).*$

两种模式都将匹配任何字符序列,只要它不包含home字符串中的任何位置。例如:

"This is a home bla bla" // no match
"This is a car"          // match

您可以在此处测试第二种模式。

于 2013-08-14T12:44:43.507 回答
0

纯否定?成为或!(成为):

!preg_match("#home#", "This is a home bla bla", $part);
于 2016-10-17T03:29:52.543 回答