Ich schreibe oft ziemlich komplizierte Reguläre Ausdrücke in Python. Zum Beispiel:Konvertieren regulärer Ausdruck Syntax von Python zu POSIX
content = ...
regex = '(.*%.*)([^A-Za-z_])(PAGES)([^A-Za-z_])(.*%.*)'
repl = '\g<1>\g<2>pages\g<4>\g<5>'
re.sub(regex, repl, content)
Verwendet in this pull request.
Es wäre sehr hilfreich, wenn ich den Standard GNU sed
verwenden könnte, anstatt jedes Mal ein spezielles Skript zu schreiben, wenn ich Dateien rekursiv massenweise ändern möchte. Das Problem ist, dass Python uses an entirely different regex syntax than sed (POSIX), für reasons well-known to any seasoned engineer.
Gibt es eine Standardmethode, um reguläre Ausdrücke von einer Syntax in eine andere zu konvertieren?
Ich weiß, dass die Konvertierung nicht immer funktioniert (einige Funktionen wie Lookahead sind nicht standard), aber eine 80-20 Lösung wäre sehr nett.
Fragen Sie, wie man Python 're' Muster in POSIX konvertiert? Trotzdem klingt die Frage zu breit. –
@ WiktorStribiżew und, hoffentlich, umgekehrt –
Related: [Regex Rosetta Stone] (https://docs.google.com/spreadsheets/d/174ZtgXlzb-XvEVotDWLTuC4kcvwJj6lyrQw5JqZKfis/edit#gid=0) – Udi