使用正则表达式的字符串否定

Pau*_*vis 34 regex negation lookahead negative-lookahead

是否可以在正则表达式中进行字符串否定?我需要匹配所有不包含字符串的字符串"..".我知道你可以使用^[^\.]*$匹配所有不包含的字符串,"."但我需要匹配多个字符.我知道我可以简单地匹配一个包含的字符串"..",然后否定匹配的返回值以获得相同的结果,但我只是想知道它是否可能.

cha*_*aos 42

您可以使用负向前瞻:

^(?!.*\.\.).*$
Run Code Online (Sandbox Code Playgroud)

如果表达式可以在字符串中的任何位置找到两个句点的序列,则会导致表达式不匹配.


Tim*_*ker 5

^(?:(?!\.\.).)*$
Run Code Online (Sandbox Code Playgroud)

只有在字符串中的任何位置没有两个连续点时才会匹配.