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

时间:2009-07-20 14:15:44

标签: regex lookahead negative-lookahead negation

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

2 个答案:

答案 0 :(得分:42)

您可以使用否定前瞻:

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

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

答案 1 :(得分:5)

^(?:(?!\.\.).)*$
只有在字符串中的任何位置没有两个连续点时,

才会匹配。