Erwartete Daten und Annahmen

(Auszug aus "Reguläre Ausdrücke" von Jeffrey E. F. Friedl)

Dies ist ein guter Zeitpunkt, um auf generelle Punkte beim Aufbau von regulären Ausdrücken zu sprechen zu kommen. Einiges habe ich schon kurz angesprochen. Beim Gebrauch von regulären Ausdrücken und bei deren Anwendung auf Daten in bestimmten Situationen werden meist stillschweigend Annahmen getroffen, und es ist oft wichtig, sich diese bewusst zu machen. Sogar bei etwas ganz Einfachem wie ˹a˼ werden Annahmen über den verwendeten Zeichensatz getroffen (siehe Zeichen). Meist genügt gesunder Menschenverstand, und deshalb habe ich nicht viel darüber gesprochen.

Nun sind aber viele Annahmen für eine Person völlig klar, aber für eine zweite überhaupt nicht. Unsere Lösung aus dem vorherigen Abschnitt nimmt beispielsweise stillschweigend an, dass geschützte Newlines nicht erkannt werden sollen (oder nur im Modus »Punkt passt auf alles«). Wenn der verwendete Dialekt dies unterstützt, kann man dazu in der Regex einfach den Punkt durch ein ˹(?s:.)˼ ersetzen.

Auch können die Daten ganz anders geartet sein, als wir es erwarten. Wenn man unsere Regex auf einen Programmtext in fast jeder Programmiersprache anwendet, wird man sein blaues Wunder erleben: Sie scheitert, weil in Kommentaren Anführungszeichen vorkommen können, die nicht gepaart zu sein brauchen.

Es ist nichts Schlechtes dabei, Annahmen über die erwarteten Daten zu treffen oder darüber, wie eine Regex eingesetzt wird. Probleme entstehen erst, wenn diese Annahmen zu optimistisch sind oder wenn eine Regex in Situationen eingesetzt wird, die der Autor nicht eingeplant hat.

  

<< zurück vor >>

 

 

 

Tipp der data2type-Redaktion:
Zum Thema Reguläre Ausdrücke bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an:
   

Copyright der deutschen Ausgabe © 2008 by O’Reilly Verlag GmbH & Co. KG
Für Ihren privaten Gebrauch dürfen Sie die Online-Version ausdrucken.
Ansonsten unterliegt dieses Kapitel aus dem Buch "Reguläre Ausdrücke" denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

O’Reilly Verlag GmbH & Co. KG, Balthasarstr. 81, 50670 Köln