我怎么只用正则表达式捕获url()中的字符串?

问题描述 投票:0回答:2

我会尽量简洁。

我只想捕获括号内的字符串:background-image:url()

我已经尝试了几个小时,我能想到的最好的是(?<!\@\*)(?<=url\().*(?=\))。(Try it online

这几乎是完美的,除非有这样的代码行或任何缩小的CSS代码:background-image:url(/images/products/[email protected]);height:0;background-image:url("/images/products/[email protected]")

它捕获了从第一个开放括号到最后一个封闭括号的所有内容,包括两者之间不相关的样式。

我只想捕获url()之间的字符串。

javascript regex
2个回答
0
投票

使用正负查找:/(?<=background-image:\s*url\().*(?=\))/ig将返回background-image: url()调用中的所有内容,并使用\s*来捕获空格。


0
投票

使用正则表达式

(?<=background-image:url\()(.+?)(?=\))

可以在xxx中找到所有background-image:url(xxx),但不包括background-image:url()

您可以在https://regexr.com中检查结果,如下所示:

“”

注意:

  1. 关于look around = look aheadlook behind,这是我的摘要:

“”

  1. 更多细节可以参考(中文)教程:环视断言 · 应用广泛的超强搜索:正则表达式
© www.soinside.com 2019 - 2024. All rights reserved.