Springe zum Inhalt

1

Mein bevorzugter Editor ist Notepad++. Seit längerem beherrscht Notepad++ auch die Suche nach regulären Ausdrücken. Standardgemäß gibt es mit regulären Ausdrücken keine Möglichkeit, Zeilen zu finden, die einen Suchbegriff nicht enhalten. Mit einem kleinen Trick kann diese Einschränkung umgangen werden: mit negativen Look-Arounds.

"(?!pattern)"
	 A zero-width negative look-ahead assertion.  For example
	 "/foo(?!bar)/" matches any occurrence of "foo" that isn't
	 followed by "bar".  Note however that look-ahead and
	 look-behind are NOT the same thing.  You cannot use this
	 for look-behind.

	 If you are looking for a "bar" that isn't preceded by a
	 "foo", "/(?!foo)bar/" will not do what you want.  That's
	 because the "(?!foo)" is just saying that the next thing
	 cannot be "foo"--and it's not, it's a "bar", so "foobar"
	 will match.  Use look-behind instead (see below).

Damit ist eine Suchbedingung möglich, die den Suchbegriff nicht enthält. Falls z.B. alle Zeilen gesucht werden sollen, die foobar nicht enthalten, dann lautet der Suchbegriff:

^((?!foobar).)*$