Ich weiß nun nicht, wie viele RegEx Profis hier mitlesen, aber ehe ich meine Frage eindeutig auf Englisch formuliere, will ich es hier wenigstens kurz versuchen.
Ich will in einem Textfile alle Zeilen mit so was
;=== <Überschrift> ==============================================
durch so was
;=== <Überschrift> -----------------------------------------------------------------
ersetzen. Dabei kann <Überschrift> beliebige Zeichen enthalten und die Strichfolge am Ende ist unterschiedlich lang (mind. 4 Striche, es sollen genauso viele wie da sind bleiben).
Einfach = durch - ersetzen geht nicht, da das vorn erhalten bleiben muss und diese Zeichen auch im sonstigen Text vorkommen können. Es geht also darum. ein bestimmtes Zeichen nur dann zu ersetzen, wenn es ab 4x am Stück vorkommt, egal ob 5x, 7x usw.
Überfordere ich hier die regulären Ausdrücke oder steh ich auf dem Schlauch?
Viele Grüße, Halweg
PS: Ich suche kein AHK-Skript sondern einen regulären Ausdruck für die Suchen-Ersetzen-Funktion im Editor (PSPad).
RegEx Frage
Moderator: jNizM
-
- Posts: 6
- Joined: 20 May 2023, 15:29
- Contact:
Re: RegEx Frage
Ich schlag vor einfach sowas wie `m)^(;===\s.*\s)(={4,})$` zu nehmen. (Dieser genaue RegEx funktioniert nur wenn das die gesamte Zeile ist ohne vorlaufende Leerzeichen/Tabs und folgende Leerzeichen/Tabs)
Danach kannst du die gesamte Zeile neu zusammen basteln mit `$1` um den ersten nicht ersetzten Teil zu bekommen und hinten dran `$2` nach einem kurzem ersetzen aller `=` durch `-`.
RegEx im test editor: https://regex101.com/r/iGqgbf/1
EDIT: Eben erst gelesen das es um einen Texteditor geht. Das wird nichts mit `-` genauso viele wie gefundene `=` am ende da die (so weit ich erlesen bin) nicht mit reinem RegEx machbar ist.
Danach kannst du die gesamte Zeile neu zusammen basteln mit `$1` um den ersten nicht ersetzten Teil zu bekommen und hinten dran `$2` nach einem kurzem ersetzen aller `=` durch `-`.
RegEx im test editor: https://regex101.com/r/iGqgbf/1
EDIT: Eben erst gelesen das es um einen Texteditor geht. Das wird nichts mit `-` genauso viele wie gefundene `=` am ende da die (so weit ich erlesen bin) nicht mit reinem RegEx machbar ist.
Re: RegEx Frage
Danke trotzdem fürs Mitdenken. Es ist schon erstaunlich, dass so rel. einfache Mehrfachersetzungen mit RegEx nicht funktionieren.