Denken!

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

Ich möchte Die Kunst, reguläre Ausdrücke zu schreiben nicht abschließen, ohne die folgende kleine Geschichte zu erzählen, die sehr gut illustriert, wie man mit ein bisschen Nachdenken bei einem regulären Ausdruck für einen NFA sehr viel erreicht. Einmal hatte ich ein kleines Problem in Emacs, der einen traditionellen NFA verwendet. Ich wollte bestimmte Wort-Zusammenziehungen wie »don’t«, »I’m«, »we’ll« usw. finden, nicht aber Apostrophe vor oder nach einem Wort. Dazu baute ich mir eine Regex, die auf ein Wort passt ˹(\<\w+)˼, gefolgt vom Emacs-Äquivalent für ˹'([tdm]|re|ll|ve)˼. Das hat funktioniert, aber dann ist mir aufgefallen, dass das ˹\<\w+˼ eigentlich zuviel des Guten ist, dass \w allein auch reicht. Wenn vor einem Apostroph ein \w auftritt, dann mit Sicherheit auch ein \w+, und einen Anfang (\<) hat ohnehin jedes Wort. Ich war nur daran interessiert, wo solche Zusammenziehungen vorkommen, die Länge des Treffers war völlig irrelevant. Mit dem \w allein war die Regex mehr als zehnmal schneller.

Ja, mit ein wenig Nachdenken kann man tatsächlich viel erreichen. Dieses Kapitel hat Ihnen hoffentlich ein paar Denkanstöße geliefert.

  

<< 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