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