C#正则表达式不包括char(!)

时间:2016-08-02 12:58:59

标签: c# regex

下面的正则表达式效果很好:

\bG1\b

但是如果前面有一个!,我想调整它以找不到G1次出现。例如:

='Plan1'!G1            --> NOT match!
=G1*G2                 --> MATCH!
='Plan2'!A1+'Plan2'!G1 --> NOT match!

这个正则表达式怎么样?

1 个答案:

答案 0 :(得分:5)

您需要negative lookbehind

  

<强> (?<!subexpression)
  其中子表达式是任何正则表达式模式。要使匹配成功,子表达式不得出现在当前位置左侧的输入字符串中。但是,任何与子表达式不匹配的子字符串都不包含在匹配结果中。

所以,使用

(?<!!)\bG1\b
^^^^^^

请参阅regex demo

enter image description here