Ich habe ein Matlab-Projekt, an dem ich im OSX-Editor TextMate arbeite. Ich muss alle Vorkommen eines bestimmten Wortes finden, sagen wir „foo“, das weder von einem „.“ eingeleitet noch von einem „/“ gefolgt wird.
Ich kann jedoch keine Möglichkeit finden, nach regulären Ausdrücken zu suchen, die auf diese Weise negativ definiert sind. Weiß jemand, ob es möglich ist, nach etwas wie „A, dem etwas anderes als B vorangestellt ist“ zu suchen?
(TextMate verwendet dieOniguruma-Bibliothek für reguläre Ausdrückevon K. Kosako.)
Antwort1
Sie möchten diesen Teil der Syntax verwenden:
(?=subexp) look-ahead
(?!subexp) negative look-ahead
(?<=subexp) look-behind
(?<!subexp) negative look-behind
In Ihrem Fall,(?<!\.)foo(?!/)
Antwort2
Das ^ (Zirkumflex oder Zirkumflex) in eckigen Klammern negiert den Ausdruck. Um also ein "foo" zu finden, dem kein "." vorangestellt ist, wäre das:
[^.]foo