我有以下两个字符串
/signon/default.wl?rs=WLW11.10&vr=2.0&fn=_top
/signon/default.wl?fn=%5Ftop&newdoor=true&rs=WLW11%2E10&vr=2%2
我想匹配除了不包含newdoor
之外的所有字符串到目前为止,我有以下正则表达式
/signon/default.wl \?(?= [\ W] *)(?newdoor)
但它匹配所有字符串。 任何人都可以指出我做错了什么。
答案 0 :(得分:5)
您可以尝试此/signon/default.wl\?(?!.*newdoor).*
使用否定先行断言输入字符串中没有newdoor
。代码看起来像这样
resultString = Regex.Match(subjectString, @"/signon/default.wl\?(?!.*newdoor).*",
RegexOptions.IgnoreCase).Value;
答案 1 :(得分:0)
/signon/default.wl\?(?=[\w]*)(?!newdoor)
(?=)
和(?!)
都是零宽度断言,不消耗任何输入。尝试:
/signon/default.wl\?(.(?!newdoor))*$
答案 2 :(得分:0)
为什么不使用类似的东西:
subjectString.contains("newdoor");