首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Reg表达式用于刮取背景:url但“url”(数据:图像)

Reg表达式用于刮取背景:url但“url”(数据:图像)
EN

Stack Overflow用户
提问于 2013-09-15 23:16:16
回答 2查看 129关注 0票数 0

我正在编写gradle脚本,以查看大型css文件,并删除图像的URL。迄今为止:

代码语言:javascript
复制
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.’。我们必须如何更新正则表达式才能使其正常工作?如果你也能分享你的理性背后的正确的正则表达式,以帮助我们更好地学习正则表达式,我将非常感激。非常感谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-15 23:34:09

您可以使用消极展望机制来完成所需的任务。在转义的左括号后面立即插入(?!data:image),这意味着您必须在此时不匹配该文本。所以你的判断力变成:

代码语言:javascript
复制
/background:[\s]?url\((?!data:image)[^\)]*\)/

您可以在这个球状中看到说明的方法。另见除了某些带有正则表达式的短语之外,我怎么找到所有的东西呢?

票数 1
EN

Stack Overflow用户

发布于 2013-09-15 23:37:08

您没有指定您使用的是哪种语言,但是如果您想要的URL总是第一个,那么就不要进行全局匹配(这就是findAll所做的,不管是什么语言)。最有可能的是,将temp.findAll更改为temp.match并将结果分配给标量字符串变量即可。但是请告诉我们哪种语言。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18818443

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档