我在这里发现了很多关于如何从结果中排除子字符串的问题,但是我想排除完全匹配的行,并且根本不知道该怎么做。

使用下面的测试数据,我如何匹配11111以外的所有内容?

0
1
00
01
10
11
000
001
010
011
100
101
110
111
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010

我已经尝试过各种方法,例如:
^((?!11|111).)*$

但这不包括子字符串匹配,而我又想排除完全匹配。

正则表达式有可能吗?如果是这样,如何排除精确匹配?

最佳答案

您需要将行尾包含在否定的前瞻中:

^(?!(11|111)$).*$

See live demo(使用您的数据)

不包括行尾,您只是断言输入不是以11111开头,而您要断言的是整个输入(开始到结尾)不是11111

关于regex - 如何从正则表达式中的匹配项中排除确切的字符串(而不是子字符串)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25950566/

10-14 22:24