正则表达式匹配字符串,但不是另一个
本文关键字:另一个 字符串 正则表达式 | 更新日期: 2023-09-27 18:12:52
我有以下两个字符串
/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
的所有字符串到目前为止,我有以下regex/登录/default.wl ' ? (? = (' w) *) (? ! newdoor)
但是它匹配所有字符串。谁能指出我做错了什么吗?
您可以试试这个/signon/default.wl'?(?!.*newdoor).*
它使用负向前看断言在输入字符串中没有出现newdoor
。代码看起来像这样
resultString = Regex.Match(subjectString, @"/signon/default.wl'?(?!.*newdoor).*",
RegexOptions.IgnoreCase).Value;
/signon/default.wl'?(?=['w]*)(?!newdoor)
(?=)
和(?!)
都是零宽度断言,不消耗任何输入。试一试:
/signon/default.wl'?(.(?!newdoor))*$
为什么不这样写呢:
subjectString.contains("newdoor");