在进行正则表达式搜索时,我想排除一种组合。怎么可能?
输入示例:
if("invalid"=key,if("A01"=key,true,false),if("B01"=key,true,false))
所需的输出:
仅当存在"{}"=key
以外的至少任何一种组合(如"invalid"=key
时,正则表达式匹配才应返回true(即应跳过此特定组合。每个组合均以= key标记结尾)
谢谢!
答案 0 :(得分:2)
在匹配"
+ "
子字符串以外的"=key
+ 1个或更多字符时,可以使用环视检查:
var isMatched = Regex.IsMatch(s, "\"(?!invalid\")[^\"]+\"=key\\b");
请参见regex demo
"(?!invalid")[^"]+"=key\b
正则表达式的意思是:
"
-双引号(?!invalid")
-后面没有invalid"
子字符串[^"]+
-除双引号以外的1个或多个字符"=key
-一个"=key
子字符串\b
-单词边界,_
之后不允许字母/数字/ key
。