Regex - Groß- / Kleinschreibung

Lilye

Grünschnabel
Hallo zusammen,
bin noch relativ neu mit Regex, wäre super, wenn mir wer einen Tipp geben könnte.

Ich versuche in einem Text das Konjunktionswort "ehe" (oder verkürzt "eh") zu finden, aber nur dann, wenn es klein geschrieben ist, außer es steht am Satzanfang. Mit der Kleinschreibung möchte ich verhindern, dass er das Wort "Ehe" (im Sinn von Heirat) findet.

Code:
([,.:?!"“„>]\s\bEhe\b|(\beh\b|\behe\b))
Aber hier ist wohl ganz egal, ob ehe groß oder klein ist - ich bekomm einfach alle Ergebnisse. Mir ist aber nicht klar warum, weil ich \i (case-insensitive) gar nicht verwendet. Oder liegt das an \b?

Bsp. Suchtexte:
Ich hatte doch eh nur achtzehn Sätze. Und ehe ich mich versah, waren es zwanzig.
Vor zweihundert Jahren wurde die Liebe als Basis für eine Ehe noch als völlig absurd angesehen.
Ehe er sich alles zurückholt.


Mit dem oben genannten Regex finde ich auch die Ehe in der zweiten Zeile.

Ich hoffe, ich konnte mein Problem erklären.

Lg Lily
 
Hallo ComFreek, danke für deine Antwort.

Ich benutze hier nur direkt die Suche über Notepad++ und habs auch testweise in der Entwicklungsumgebung von IntelliJ getestet. Aber eben nur als Regex Suche.
 
Ich hab's gerade in Notepad++ getestet und war zuerst auch verwundet, warum es nicht klappt.
Wenn du dich in der Suchmaske in den Tabs "Suchen" und "Ersetzen" befindest, dann hebt Notepad++ auch "[für eine] Ehe [noch]" grün hervor, obwohl der RegEx dieses Wort nicht matcht. Wenn du allerdings manuell mit "Suche weiter" durchklickst und die echten Markierungen der Matches betrachtest, dann siehst du, dass dieses Vorkommnis von "Ehe" gar nicht gefunden wurde.
Dieses UI-Verhalten scheint mir ein Bug zu sein.

Eine deutlichere Ansicht der tatsächlichen Funde erhälst du im Tab "Hervorheben":
notepad++.PNG
 
Ich hatte vergessen zu erwähnen, dass du noch die Checkbox "Groß-/Kleinschreibung beachten" aktivieren musst ;)
 
Das hatte ich auch ausprobiert.
Aber dann bekomme ich nur mehr 2 Ergebnisse... das ist wirklich seltsam.

1530434134227.png
 
Ah, ich hatte auch den ganzen Text in eine Zeile gepackt.
Gibt es eine Möglichkeit im Regex selbst Groß- und Kleinschreibung zu "erzwingen"?
Anscheinend nicht in Notepad++. Aber was ist überhaupt dein Anwendungsfall? Das klingt für mich stark danach, dass du das in einer Programmiersprache automatisieren möchtest anstatt manuell über eine UI zu gehen, die dafür nicht gedacht ist.
 
Also im Hintergrund liegen ca. 500 Texte, die ich nach bestimmten Worten durchsuchen muss. Ich hab dafür einen Parser, der die Worte sucht - den allerdings eine Freundin für mich macht (in Java).
Damit ich meine Worte beliebig anpassen kann, arbeitet der Parser mit einem Inputfile, indem ich die Worte mit einem Regex-Ausdruck so ablege, wie ich es grade brauche. So kann ich dann selbst entscheiden, was der Parser suchen soll oder nicht.
Ich bereite nun gerade die Regex Ausdrücke vor.
in dem Parser kenn ich mich leider nicht aus...
 
Zurück