[英]Regex - Match any character except character
我的目標是匹配以 __ 開頭並以 __ 結尾的每個組。
例如,在此文本中:
__1__
__2____3__
__4_4__
我們可以找到 4 個組。
有了這個正則表達式
__.[^__]*__
最后一組不匹配。
有了這個
__(?!(^_)$).*__
第 2 組和第 3 組合二為一。
請問有什么解決辦法?
您可以使用
__.+?__
您可能會驚訝於我沒有說“一路上不要匹配任何下划線”,因為在您所有的嘗試中,您都嘗試過類似的事情。
訣竅是使用+?
,一個惰性量詞。 我允許正則表達式匹配任何字符 ( .
),但次數越少越好,這樣后面就有兩個下划線。 就好像在匹配每個字符之后,正則表達式引擎總是問“前面有兩個下划線嗎?”。 如果有,那就是量詞停止匹配的地方。
有關惰性與貪婪量詞的更多信息,請參閱此內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.