c# - 用于检索 CSS url 函数参数的正则表达式

标签 c# css regex parsing

我正在尝试获取以下字符串的 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/

相关文章:

regex - 具有特殊字符的 Angular2 密码验证

c# - 当使用 "using"时,我们是否有任何情况可以包含 catch block ,我们可以在其中处理对象而不做任何其他事情

html - Bootstrap 控件根据屏幕宽度更改位置高度

java - 如何使用正则表达式选择文件路径

css - 字体很棒的图标没有出现在 Materialize css progress/determinate 之上

javascript - 将单选按钮更改为图像 - 请提供一点帮助?

regex - 在 PERL 中正确输出特殊字符(unicode)

c# - 如果字段类型没有默认构造函数,如何使用 ValueResolver?

c# - RemoveRange() 方法如何在 List<> 中工作?

C# System.DirectoryServices.AccountManagement 未知错误 (0x80005000) UserPrincipal.IsMemberOf()