Regex: Suche mit Ausnahmen

tr0nix

tr0nix

der-mit-dem-tux-tanzt
Hallo zusammen

Ich suche nach /\w+platz/, aber nicht nach boersenplatz. Kann ich das in einem Ausdruck abbilden?

Beispiel:
Gugusplatz <- match
Bubenplatz <- match
Boersenplatz <- KEIN match
Sonstplatz <- match

Grüsse
Joel

(ich brauche sowas wie negierte Klammern (^boersen).. finde baer nirgens was :/)
 
Zuletzt bearbeitet:
Mal ein paar perl-Varianten:
Code:
echo -e 'Gugusplatz\nBubenplatz\nBoersenplatz\nSonstplatz'|
perl -ne 'print if /\w+platz/ and not /Boersenplatz/'
Das ist halt mit zwei match-Vorgängen in einer if-Bedingung. Sonst "nativ" in einer einzelnen regex könnte man das zum Beispiel mit negative-lookbehind machen:
Code:
echo -e 'Gugusplatz\nBubenplatz\nBoersenplatz\nSonstplatz'|
perl -ne 'print if /\w+(?<!Boersen)platz/'
Das "platz" darf also nicht auf "Boersen" folgen.

Eine ähnliche Frage gabs schonmal, moment, ich kram eben.

[Ädüt]:
*Hier* isser.
 
Zuletzt bearbeitet:
Salü GIS

Super merci! Das mit den Lookbehind hab ich im Regex Buch 3x durchgelesen und es will einfach nicht in meinen Kopp. So funktionierts prima!

Grüsse
Joel

P.S. der von dir gelinkte Thread ist imho nicht so ganz vergleichbar, dort ging es nach meinem Überschauen eher um Zeichenklassen.
 
Hallo,
auch wenn das Problem schon gelöst wurde, hilft vielleicht das (für die Sprache Ruby, vielleicht gibt es ja ein Äquivalent?!):

(?!re)
Erfasst das, was re nicht erfasst. Benutzt das Gefundene nicht (null-breite negative Vorausschau). Zum Beispiel erfasst /hot(?!dog)(\w+)/ jedes Wort, das die Buchstaben ``hot'' enthält, an denen kein ``dog'' hängt. Zurück geliefert wird das Ende des Wortes in $1.

ciao
 

Ähnliche Themen

Suchen und Ersetzen mit regulärem Ausdruck

Dateien mit Ausnahme der aktuellste löschen

Dateien nach Datum finden

Paketabhängigkeiten

mal wider "suchen"ersetzen"umbenennen"

Zurück
Oben