2016-08-02 4 views
1

der reguläre Ausdruck arbeitet unter gut:C# Regular Expression ohne ein Zeichen

\bG1\b 

Aber ich möchte es anzupassen nicht die G1 Vorkommen zu finden, wenn durch ein voran!. Zum Beispiel:

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

wie würde dieser reguläre Ausdruck?

Antwort

5

Sie benötigen ein negative lookbehind:

(?<!subexpression)
wo subexpression ist jedes Muster für reguläre Ausdrücke. Damit eine Übereinstimmung erfolgreich ist, darf Teilausdruck nicht bei der Eingabezeichenfolge links von der aktuellen Position auftreten. Jede Teilzeichenfolge, die nicht mit Teilausdruck übereinstimmt, ist jedoch nicht im Übereinstimmungsergebnis enthalten.

So verwenden

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

Siehe regex demo

enter image description here