簡體   English   中英

正則表達式-在字符串中獲取@ [SomeText]的匹配項

[英]Regex - Get matches of @[SomeText] in a string

我想在字符串中獲取@[SomeText]模式的所有匹配項。

例如,對於此字符串:

這是@[text1]一些文本@[text2]

我想要@[text1]@[text2]

我正在使用Regex Hero在線檢查我的模式匹配情況,當有一個表達式要匹配時,我的模式可以正常工作,

例如:

here is @[text1] text

但如果有多個,則兩者都與中間的文本匹配。

在此處輸入圖片說明

這是我的正則表達式:

@\[.*\]

希望能幫助您隔離這些事件。

這里的問題是您正在使用貪婪量詞( * )。 要捕獲您需要的所有內容,應使用帶有全局修飾符的惰性量詞( *? ):

/(@\[.*?\])/g

在這里看看https://regex101.com/r/pH0gA5/1

這應該工作:

@\[(.*?)\]

細節 :

(。*?) :以非貪婪的方式匹配所有內容並捕獲它。 因為*? 量詞是惰性的(非貪婪的),它匹配盡可能少的字符以使整體匹配嘗試成功,即text1 對於從給定位置開始的匹配嘗試,惰性量詞為您提供最短的匹配。

默認情況下,。*是貪婪的,因此它只找到一個匹配項,將“ text1]和@ [text2”視為兩個方括號之間的文本。

如果在。*后面添加問號,它將在到達]之前找到最少的字符數。

因此,正則表達式\\ @ [。*?]做您想要的。

暫無
暫無

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

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