我有正则表达式
/url\\(\\s*(?!data:)([^\\)\\s]+)\\s*\\)?/
在css中搜索这样的行
background-image: url(/path.to/img.png);
忽略线
background-image: url(data:image/svg+xml;base64, PHN2ZyB4bWxucz) no-repeat;
用于查找图像路径并替换它们。
但是如果数据网址有引号
background-image: url("data:image/svg+xml;base64, PHN2ZyB4bWxucz") no-repeat;
正则表达式匹配它。我需要匹配通常的图像网址,并忽略数据网址与单引号,双引号或没有它们。
答案 0 :(得分:2)
url\\(\\s*(?!["']?data:)([^)]+)\\)
在这个正则表达式中,它会忽略下面的任何内容(在(
之后接受可选空格
url("data...
url(data:...
这意味着它只会匹配您在问题上提供的第一个示例。
答案 1 :(得分:1)
尝试将模式与("|')?
:
/url\\(("|')?\\s*([^(:;,]+)\\s*("|')?\\);?/
("|')?
也允许您匹配单引号或双引号