我有一个正则表达式来从 css 中获取背景 url:

/(@import.*?)?url\(([^)]+)\)/gi 

这对于大多数情况都适用。然而,野外的CSS则是另一回事了。即使它无效,我也需要匹配 url('/pix/ajax/ajax-loader (2).gif'),以及更典型的内容,如 url(/ Assets /domainsbg@2x-0d8ea9b405f202ff135ced3cdb4658cc.png)。我已经发挥了有限的正则表达式能力,并且需要一些帮助。我正在使用的测试用例是:

background: url('/pix/ajax/ajax-loader (2).gif') 
background: url(/pix/ajax/ajax-loader (2).gif) 
background: url(/assets/domainsbg@2x-0d8ea9b405f202ff135ced3cdb4658cc.png) 
background: url('/assets/domainsbg@2x-0d8ea9b405f202ff135ced3cdb4658cc.png') 
background-image: url(file.gif); 
background-image: url('file.gif') no-repeat; 
background: #FF0000 url( "file.gif" ) no-repeat  ; 
background: #FF0000 url( "file%20space.gif" ) no-repeat; 

仅供引用,我知道正则表达式是有问题的,并且用它进行解析通常不是最好的解决方案,但在这种情况下我陷入了困境。

请您参考如下方法:

以下正则表达式可处理您的所有测试用例:

 url\(.*\) 

顺便说一句:regexpal是一个动态测试正则表达式的好网站。


评论关闭
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!