如何在进行正则表达式搜索时排除组合?
how to exclude a combination while doing regex search?
我想在进行正则表达式搜索时排除一个组合。怎么可能?
输入示例:
if("invalid"=key,if("A01"=key,true,false),if("B01"=key,true,false))
期望输出:
正则表达式匹配应该 return 仅当至少存在 "{}"=key
除了 "invalid"=key
之类的任何一个组合时才为真(即它应该跳过这个特定的 combination.every 组合将结束带有 =key 标签)
提前致谢!
您可以在匹配 "
+ 1 个或多个 "
+ "=key
子字符串以外的字符时使用环视检查:
var isMatched = Regex.IsMatch(s, "\"(?!invalid\")[^\"]+\"=key\b");
"(?!invalid")[^"]+"=key\b
正则表达式表示:
"
- 双引号
(?!invalid")
- 后面没有 invalid"
子串
[^"]+
- 除双引号外的 1 个或多个字符
"=key
- "=key
子串
\b
- 单词边界,在 key
之后不允许有 letter/digit/_
。
我想在进行正则表达式搜索时排除一个组合。怎么可能?
输入示例:
if("invalid"=key,if("A01"=key,true,false),if("B01"=key,true,false))
期望输出:
正则表达式匹配应该 return 仅当至少存在 "{}"=key
除了 "invalid"=key
之类的任何一个组合时才为真(即它应该跳过这个特定的 combination.every 组合将结束带有 =key 标签)
提前致谢!
您可以在匹配 "
+ 1 个或多个 "
+ "=key
子字符串以外的字符时使用环视检查:
var isMatched = Regex.IsMatch(s, "\"(?!invalid\")[^\"]+\"=key\b");
"(?!invalid")[^"]+"=key\b
正则表达式表示:
"
- 双引号(?!invalid")
- 后面没有invalid"
子串[^"]+
- 除双引号外的 1 个或多个字符"=key
-"=key
子串\b
- 单词边界,在key
之后不允许有 letter/digit/_
。