Invertieren Sie die Übereinstimmung von regulären Ausdrücken in TextMate

1063
luciano

Ich habe diese Zeichenfolge:

goose goose goose random goose goose test goose goose goose 

Ich verwende reguläre Ausdrücke in TextMate, um ein beliebiges Wort zu finden goose. deshalb randomund test.

Also versuchte ich diesen regulären Ausdruck:

[^\sgoose\s] 

Aber das ist nicht ganz das, was ich will. Es passt zu jedem Zeichen, das nicht aus spaceBuchstaben besteht g o s e.

Wie kann ich feststellen, dass der reguläre Ausdruck mit einem ganzen Wort übereinstimmt, das nicht goosepasst? Daher sollte es 2 Treffer geben randomund test.

1

1 Antwort auf die Frage

3
Toto

Nicht sicher, ob es mit TextMate funktioniert (ich habe es nicht, aber ich habe es mit Notepad ++ getestet).

Du könntest es versuchen:

\b(?:(?!goose)\w)+\b 

Erläuterung:

\b : word boundary (?: : start non capture group (?!goose) : negative lookahead, make sure we don't have the word "goose" \w : a word character, you may use "[a-zA-Z]" for letters only or "." for any character but newline )+ : group may appears 1 or more times \b : word boundary