正则表达式匹配字符串但不是另一个

Mar*_*com 0 c# regex

我有以下两个字符串

/signon/default.wl?rs=WLW11.10&vr=2.0&fn=_top
/signon/default.wl?fn=%5Ftop&newdoor=true&rs=WLW11%2E10&vr=2%2
Run Code Online (Sandbox Code Playgroud)

我想匹配除了不包含newdoor的字符串之外的所有字符串

到目前为止,我有以下正则表达式

/signon/default.wl\?(?=[\w]*)(?!newdoor)

但它匹配所有字符串.任何人都可以指出我做错了什么.

Nar*_*ala 5

你可以试试这个 /signon/default.wl\?(?!.*newdoor).*

它断言使用负向前瞻,即newdoor 输入字符串中没有出现.代码将如下所示

resultString = Regex.Match(subjectString, @"/signon/default.wl\?(?!.*newdoor).*", 
               RegexOptions.IgnoreCase).Value;
Run Code Online (Sandbox Code Playgroud)