正則表達式在第一次比賽時中止

個人正則表達式模式看起來像 正則表達式

<xxxx location="file path/level1/level2" xxxx some="xxx">

我只對分配給位置的引號感興趣。 若是沒有貪婪的開關,這豈不是像下面同樣容易嗎? spa

/.*location="(.*)".*/

彷佛不起做用。 code


#1樓

怎麼樣 圖片

.*location="([^"]*)".*

這樣能夠避免使用。*進行無限搜索,而且將與第一個引號徹底匹配。 get


#2樓

您須要將正則表達式設爲非貪婪,由於默認狀況下, "(.*)"將與全部"file path/level1/level2" xxx some="xxx"匹配。 io

相反,您可使點星不貪心,從而使其與儘量少的字符匹配: file

/location="(.*?)"/

添加? 量詞( ?*+ )上的字符會使它變得非貪婪。 搜索


#3樓

若是您的引擎支持,請使用非貪婪匹配。 添加? 裏面的捕獲。 bug

/location="(.*?)"/

#4樓

location="(.*)"將從「 location=以後的」匹配到some="xxx以後的some="xxx除非您將其設置爲非貪婪。所以,您須要.*? (即,使其成爲非貪婪的)或更好地替換.*[^"]*im


#5樓

使用惰性量詞? 沒有全局標誌的答案。

例如,

在此處輸入圖片說明

若是您具備全局標誌/g ,則它將與全部最低長度的匹配項匹配,以下所示。 在此處輸入圖片說明

相關文章
相關標籤/搜索