REGEX - Zeilenende bei bestimmtem Wort ermitteln?

2 Antworten

Geht entweder mit einem lookbehind variabler Länge, welcher soweit ich weiss nur von .NET/C# Regex unterstützt wird bzw. in Java mit definierter max length. NP++ kann das nicht, unterstützt aber PCRE (verwendet imho Boost Regex).

Hier kann man K als lookbehind Alternative verwenden. Siehe Demo auf Regex101.

Germany.*\K$

Es matcht das gesamte Pattern und dort, wo \K steht resettet die Ausgabe.

Woher ich das weiß:eigene Erfahrung

Wie wäre es mit

.*Germany.*($)

oder so ähnliche? Was meinst du mit "markieren"? Und welche Programmiersprachen bzw. welche RegEx nutzt du?


MatzeRe79 
Beitragsersteller
 12.07.2021, 12:51

Superstark! Funktioniert hervorragend! Vielen Dank dafür!

1
MatzeRe79 
Beitragsersteller
 12.07.2021, 11:43

Danke für deine schnelle Rückmeldung. Leider kann ich hier in der Antwort keine Bilder einfügen, daher habe ich die ursprüngliche Frage nochmal angepasst. Das wird gerade geprüft.

1
Destranix  12.07.2021, 11:53
@MatzeRe79

Ah, da kommt mir gerade: Du solltest die Frage ergänzt und nicht bearbeitet haben. Bei der ergänzung sollte das eigentlich nicht dauern wenn ich mich richtig erinnere.

0
Destranix  12.07.2021, 12:08
@MatzeRe79

Ah ok. Du kannst mittels Klammern Gruppen definieren und mittel $1, $2, $3, ... im Replace dann diese Gruppen einsetzen.

Beispielsweise:

(.*Germany.*)

und

$1

Markiert die Zeilen, die "Germany" enthalten und lässt sie beim ersetzen unverändert.

Der Index ergibt sich daraus, die wievielte Klammer die erste der Klammern ist.

Beispiel:

((.*)(Germany)(.*))

$1 ist der ganze Term. $2 der teil vor "Germany", $3 "Germany", $4 der Teil hinter "Germany"

1