我想匹配任何不包含字符串“DontMatchThis”的字符串。
什么是正则表达式?
试试这个:
^(?!.*DontMatchThis).*$
匹配不包含特定模式的字符串的正则表达式是
(?s)^(?!.*DontMatchThis).*$
如果您使用不带 the 的模式(?s)
(这是RegexOptions.Singleline
标志的内联版本,可以.
匹配换行符 LF 符号以及所有其他字符),DontMatchThis
则只会在第一行搜索 ,并且只有没有 LF 符号的字符串才会匹配.*
。
图案细节:
(?s)
- 一个 DOTALL/Singleline 修饰符.
匹配任何字符^
- 字符串锚的开始(?!.*DontMatchThis)
-负前瞻检查是否有 0 个或更多字符(与贪婪.*
子模式匹配 -注意惰性.*?
版本(在下一个子模式匹配之前匹配尽可能少的字符)如果DontMatchThis
预期更接近字符串开始,则可能会更快完成工作) 紧随其后的是DontMatchThis
.*
- 任何零个或多个字符,尽可能多,最多$
- 字符串的结尾(请参阅锚字符:美元($
))。