4

(appendCsrfToken).+(\.do\?\w)
匹配字符串,如...
document.forms[0].action = appendCsrfToken("search.do?lname=Smith");

我想做的是找到有.do?部分但没有部分的字符串appendCsrfToken。例如...
document.forms[0].action = "search.do?lname=Smith";

我认为下面的否定会起作用,但是当我测试它时我没有得到任何匹配
(^appendCsrfToken).+(\.do\?\w)

如何正确否定appendCsrfToken以获得我正在寻找的匹配?

4

2 回答 2

4

用于否定^仅适用于字符类。你需要一个前瞻。最简单的方法是从字符串 ( ^)的开头一直查找,appendCsrfToken并使用否定的前瞻。如果可行,请继续匹配do?

^(?!.*appendCsrfToken).*(\.do\?\w)

演示。

于 2013-08-27T18:05:22.867 回答
0

您也可以使用否定的lookbehind。这是解决方案

^(?<!.*appendCsrfToken).*(\\.do\\?\\w)
于 2013-08-29T01:38:16.427 回答