如何在进行正则表达式搜索时排除组合?

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");

regex demo

"(?!invalid")[^"]+"=key\b 正则表达式表示:

  • " - 双引号
  • (?!invalid") - 后面没有 invalid" 子串
  • [^"]+ - 除双引号外的 1 个或多个字符
  • "=key - "=key 子串
  • \b - 单词边界,在 key 之后不允许有 letter/digit/_