我有一个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

10-01 05:00
查看更多