Tim*_*ker 11
如果要匹配与以下内容不相同 的字符串foo:
^(?!foo).*$
Run Code Online (Sandbox Code Playgroud)
如果要匹配不包含 的字符串foo:
^(?!.*foo).*$
Run Code Online (Sandbox Code Playgroud)
如果要匹配不包含foo 完整单词的字符串:
^(?!.*\bfoo\b).*$
Run Code Online (Sandbox Code Playgroud)
如果要匹配字符串直到foo出现并在之前停止匹配foo:
^(?:(?!foo).)*
Run Code Online (Sandbox Code Playgroud)
这些解决方案不处理字符串中的换行符,因此RegexOptions.Singleline如果这是一个问题,您可能必须设置相应的正则表达式选项,如.NET中.
(?!foo)是一个零宽度的负前瞻表达式,这意味着它断言不可能("负")匹配foo字符串中的当前位置(" 向前看 "),而不会在匹配尝试中消耗任何字符("零宽度").