正则表达式否定前瞻不按预期工作

时间:2013-10-24 07:23:17

标签: c# regex lookahead

我有以下文字:

 #arkLogo {
            background-image: url("static/images/arklogo.png");
        }   

我创建了一个正则表达式来提取所有网址,比如

static/images/arklogo.png

我的正则表达式是:

(?!url\s*\()("|').*(?=("|')\))

但它匹配url与第一个引用如下:

"static/images/arklogo.png

我尝试移动前瞻范围来捕捉此引用,如此

(?!url\s*\(("|')).*(?=("|')\))

但在这种情况下,它会整行整行

background-image: url("static/images/arklogo.png");

我找到了解决方案,我只需要使用正面的lookbehind,就像这样:

(?<=url\s*\(("|')).*(?=("|')\))

1 个答案:

答案 0 :(得分:1)

我找到了一个解决方案,我只需要使用正面的lookbehind,就像这样:

(?<=url\s*\(("|')).*(?=("|')\))