在正则表达式中停止单词

And*_*eas 2 c# regex

我知道我可以做以下[^ h]让所有比赛都接受带有'h'的比赛.我怎么用整个单词来做这个,比如^(单词)

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字符串中的当前位置(" 向前看 "),而不会在匹配尝试中消耗任何字符("零宽度").