我有一个CSS文件,我想通过用空字符替换CSS文件中的任何其他字符来提取正则表达式编辑器中的所有URL。
css文件如下所示:
@font-face {
font-family: 'font_name';
src: url('http://my-site.ext/path/to/font/proximanova-light-webfont.eot');
src: url('http://my-site.ext/path/to/font/proximanova-light-webfont.eot?#iefix') format('embedded-opentype'),url('http://my-site.ext/path/to/font/proximanova-light-webfont.woff') format('woff'),url('http://my-site.ext/path/to/font/proximanova-light-webfont.ttf') format('truetype');
font-weight: normal;
font-style: normal;
}
并且我使用以下正则表达式替换了我的其余文件内容:
(?!(http[^\']+)).
但是不起作用。
我喜欢这样的最终结果:
http://my-site.ext/path/to/font/proximanova-light-webfont.eot
http://my-site.ext/path/to/font/proximanova-light-webfont.eot?#iefix
http://my-site.ext/path/to/font/proximanova-light-webfont.woff
http://my-site.ext/path/to/font/proximanova-light-webfont.ttf
这种模式有什么问题吗?
最佳答案
这是一个可以在regex101以及其他在线工具中使用的解决方案。
使用此正则表达式(我对regex101进行了正斜杠转义):
搜索:
http[^\']+(*SKIP)(*F)|.
替换:空字符串
在the demo中,查看底部窗格(替换项)。复制,粘贴,即可获得链接。
怎么运行的
交替
|
的左侧与完整urls
匹配,然后故意失败,此后引擎跳到字符串中的下一个位置。右侧匹配一个字符,该字符将被空字符串替换。这听起来可能很费力,但这是我所知的最有效的方法。如果要保留空格和换行符,请改用以下方法:
http[^\']+(*SKIP)(*F)|\S