簡體   English   中英

正則表達式 - 匹配除字符以外的任何字符

[英]Regex - Match any character except character

我的目標是匹配以 __ 開頭並以 __ 結尾的每個組。

例如,在此文本中:

__1__
__2____3__
__4_4__

我們可以找到 4 個組。

有了這個正則表達式

__.[^__]*__ 

最后一組不匹配。

有了這個

__(?!(^_)$).*__ 

第 2 組和第 3 組合二為一。

請問有什么解決辦法?

您可以使用

__.+?__

您可能會驚訝於我沒有說“一路上不要匹配任何下划線”,因為在您所有的嘗試中,您都嘗試過類似的事情。

訣竅是使用+? ,一個惰性量詞。 我允許正則表達式匹配任何字符 ( . ),但次數越少越好,這樣后面就有兩個下划線。 就好像在匹配每個字符之后,正則表達式引擎總是問“前面有兩個下划線嗎?”。 如果有,那就是量詞停止匹配的地方。

有關惰性與貪婪量詞的更多信息,請參閱內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM