我正在尝试获取以下字符串的 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;不透明度:.30;过滤器:Alpha(不透明度=30
...
我想确保它支持尽可能多的变体(额外的空格等)。
谢谢!
基隆
编辑
此外,我需要忽略可选的引号 ' 或 "...
现在,它看起来像这样:
url\(['|"]?(?<url>[^)]+)\)
我似乎无法让它停止/忽略最后一个引用...
最佳答案
这是由于 * 量词的贪婪,尝试使用否定字符类而不是 .
url\((?<url>[^)]*)\)
或者你可以使用惰性运算符
url\((?<url>.*?)\)
第一选择可能更好。
编辑:要忽略第二个引号,您需要像这样使用惰性量词
url\(['"]?(?<url>[^)]+?)['"]?\)
您不要在字符类中使用交替元字符 |
。
关于c# - 用于检索 CSS url 函数参数的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2993732/