簡體   English   中英

正則表達式用於檢索CSS url函數的參數

[英]Regex for retrieving the parameter of the CSS url function

我正在嘗試獲取以下字符串的url部分:

url(images/ui-bg_highlight-soft_75_cccccc_1x100.png)

所以如果images/ui-bg_highlight-soft_75_cccccc_1x100.png需要的部分。

目前我有這個:

url\((?<url>.*)\)

但是在下面的例子中似乎令人窒息:

url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30)

其結果是images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30 images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30 ......

我想確保它支持盡可能多的變體(額外的空格等)。

謝謝!
基隆

編輯

另外,我需要忽略可選引號'或'......

現在,它看起來像這樣:

url\(['|"]?(?<url>[^)]+)\)

我似乎無法讓它停止/忽略最后的引用...

這是由於*量詞的貪婪,嘗試一個否定的字符類而不是一個。

url\((?<url>[^)]*)\)

或者您可以使用惰性運算符

url\((?<url>.*?)\)

第一選擇可能更好。

編輯:要忽略第二個引用,您將需要使用這樣的惰性量詞

url\(['"]?(?<url>[^)]+?)['"]?\)

您不使用交替元字符| 在一個角色類中。

[^\\)]+替換.*

這應該這樣做:

url\(['"]?(?<url>.*?)['"]?\)

但您可能希望允許可選的空格:

url\s*\(['"\s]*(?<url>.*?)['"\s]*\)

這也將匹配一些無效的字符串,但如果您的CSS有效,這應該不是問題。

更多的事情:那個| ['|"]它不作為OR運算符,它只是匹配文字| 。或者隱含在字符類中。

網址\\((。* \\。PNG)

url\\((.[^)]*)\\)

暫無
暫無

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

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