我正在编写gradle脚本,以查看大型css文件,并删除图像的URL。迄今为止:
def temp = ".post-format background:url(image/goes/here.jpg); {background: .post-format {background: url(../img/post //formats.png);display:;display:.woocommerce-info:before {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAAFCAYAAABvsz2cAAAAG0lEQVQIHWP8DwQMQMACxIwwBliECcQDATgDAMHrBQqJ6tMZAAAAAElFTkSuQmCC)center no-repeat #18919c }"
def list = temp.findAll(/background:[\s]?url\([^\)]*\)/){ match ->
match
}这是可行的,但它也需要我们不需要的“数据:图像”文件url。因此,在这里,temp变量既包含好的‘image/ So /here.jpg’url,也包含我们不需要的‘data:image/png.’。我们必须如何更新正则表达式才能使其正常工作?如果你也能分享你的理性背后的正确的正则表达式,以帮助我们更好地学习正则表达式,我将非常感激。非常感谢
发布于 2013-09-15 23:34:09
您可以使用消极展望机制来完成所需的任务。在转义的左括号后面立即插入(?!data:image),这意味着您必须在此时不匹配该文本。所以你的判断力变成:
/background:[\s]?url\((?!data:image)[^\)]*\)/您可以在这个球状中看到说明的方法。另见除了某些带有正则表达式的短语之外,我怎么找到所有的东西呢?
发布于 2013-09-15 23:37:08
您没有指定您使用的是哪种语言,但是如果您想要的URL总是第一个,那么就不要进行全局匹配(这就是findAll所做的,不管是什么语言)。最有可能的是,将temp.findAll更改为temp.match并将结果分配给标量字符串变量即可。但是请告诉我们哪种语言。
https://stackoverflow.com/questions/18818443
复制相似问题