Hallo @rikola
Das Problem welches du hier schilderst ist mit regulären Ausdrücken generell nicht direkt lösbar. Auch nicht mit sed und perl usw.
Dafür verwendet man üblicherweise die Negation der einzelnen Zeichen und kombiniert diese zu Gruppierungen.
\([^a][^u][^c][^h]\) Hier nicht a gefolgt von nicht u gefolgt von nicht c .... =auch
Oder der Programmfluss steuert das abhängig von positiven Matching.
Hier würde ich beispielsweise sagen können , ersetze nur,wenn nicht "auch" gefunden wird.
Das ist aber dann abhängig von der Anwendung und der Scriptsprache.
In perl gibt es da so schöne Konstrukte, wo ich der Aktion noch eine Bedingung hinterher werfen kann.
tr/a/A/g unless (/\bauch\b/) würde z.B. a durch A ersetzen, wenn das gematchte Wort nicht "auch" an einer Wortgrenze ist. Ich könnte natürlich auch mit next, break usw. weitermachen, um bestimmte Zeichengruppen/Wörter auszuschließen.
ergo Negation
Hoffe etwas zur Klarheit beigetragen zu haben.
Gruß Wolfgang