[英]C# Regex to match a string that doesn't contain a certain string?
我想匹配任何不包含字符串“DontMatchThis”的字符串。
什么是正則表達式?
嘗試這個:
^(?!.*DontMatchThis).*$
匹配不包含特定模式的字符串的正則表達式是
(?s)^(?!.*DontMatchThis).*$
如果您使用不帶(?s)
的模式(這是RegexOptions.Singleline
標志的內聯版本,使得.
匹配換行符號以及所有其他字符),則只會在第一行搜索DontMatchThis
,只有沒有LF符號的字符串才會匹配.*
。
圖案細節 :
(?s)
- DOTALL / Singleline修改器制作.
匹配任何角色 ^
- 字符串錨點的開始 (?!.*DontMatchThis)
- 負向前瞻檢查是否有任何0個或更多字符(與貪婪.*
subpattern匹配 - 注意一個懶惰.*?
版本(在下一個子模式匹配之前匹配盡可能少的字符)可能會得到如果DontMatchThis
預計接近字符串開始,那么工作就會更快完成)接着是DontMatchThis
.*
- 任意零個或多個字符,盡可能多,最多 $
- 字符串的結尾(參見Anchor Characters:Dollar( $
) )。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.