Frage von jehudaa, 28

RegEx in Python?

Gibt es Unterschiede in der Verwendung von RegEx in Python und RegEx bei grep? Was muss man speziell beachten?

Expertenantwort
von TeeTier, Community-Experte für programmieren, 28

Ja, es gibt Unterschiede. Eigentlich hat jeder RegEx-Dialekt seine Eigenheiten, selbst wenn es eine 100%ige Kompatibilität gibt.

Guck dir einfach die Dokumentationen zu "grep" und zu "re" Modul an, dann klären sich all deine Fragen!

Kommentar von spaghetticode ,

Es gibt RegEx-Dialekte? o_O In einer Welt, in der sogar der Döner genormt ist, gibt es RegEx-Dialekte?

36 Jahre auf dieser Welt und ich komme immer noch regelmäßig ins Staunen...

Kommentar von ralphdieter ,

Reguläre Ausdrücke stammen aus der theoretischen Informatik. Dort ist alles klar definiert, aber für die Praxis nur bedingt nutzbar.

Bei grep möchte man mit möglichst wenig Tastendrücken auskommen. Abkürzungen für gängige Teilausdrücke (Hex-Zahl, Zeitstempel) sind da willkommen. Außerdem sind Erweiterungen hilfreich, die den Kontext einbeziehen, also eigentlich keine regulären Ausdrücke mehr sind.

Bei sed will man oft einzelne Teilausdrücke löschen oder miteinander vertauschen. Das Standard-Ergebnis eines regulären Ausdrucks ("passt"/"passt nicht") reicht dazu nicht aus.

In Python wird man sicher das Beste aus allen Dialekten herausgepickt haben, um möglichst viele Anwendungsmöglichkeiten zu bieten. Allerdings taucht hier zusätzlich das Problem der Rechenzeit auf. Kleine Erweiterungen (z.B. *? statt *) als Hinweise an die re-Engine können da Wunder wirken.

Kommentar von spaghetticode ,

Danke für die Erläuterungen!

Keine passende Antwort gefunden?

Fragen Sie die Community