Sonntag, 22. Februar 2009

Regex Online Generator

Ich mag keine Regular Expressions und empfehle jeden diese, falls irgendwie machbar, zu umgehen. RegExp sind schwer zu entwerfen und noch viel schwerer später zu ändern. Falls man selbst einen Fehler gemacht hat oder man gar die RegEx von jemand anderem überarbeiten muss. Außer das sie dann schick kurz sind, ist es reine Zeitverschwendung.

Aber gut, teilweise kommt man halt nicht drumherum. Als falls man auf üble Weise dazu gezwungen wurde hilft dieser schicker Regular Expression Generator:
http://txt2re.com

Man gibt einen Beispiel String ein den man matchen möchte und kann sich dann zusammen klicken welcher Teil des Strings welche Bedeutung hat. Ob Zahl, Buchstabe, Datum oder exakt diese Zeichenkette.

Sehr schön zum Testen und verfeinern von Regexp ist das Online Tool RegExr. Ein bisschen einfacher und übersichtlicher ist rubular mit kurzem Cheat Sheet.

Ganz ohne lernen kommt man aus, wenn man Open Source Projekt txt2regex nutzt. Hier beantwortet man ein paar Fragen des Wizards und bekommt dann den fertigen Ausdruck für 20 verschiedene Programmiersprachen. Jedoch nur wenn man Linux oder Cygwin hat und die Konsole nicht scheut.

Update 2014: In zwischen nutze ich zum Testen von Regexp oft regex101.com. Die Seite unterstützt PHP, JavaScript und Phyton Ausdrücke. Rechts oben wird gut erklärt welcher Teil der Regular Expression was bewirkt. Die Gleiche Erklärung gibt es auch als Hint, wenn man mit der Maus über den Ausdrück fährt. Zusammenhänge sind schick farbig hervorgehoben. Als Bonus bekommt man auch "matches" für Klammer-Ausdrücke angezeigt. Ganz unten versteckt sich der Test für Suchen & Ersetzen.

Wenn alles nicht mehr hilft empfehle ich dieses Buch ==>

3 Kommentare:

Laubi hat gesagt…

Ich weiß nicht was du gegen regex hast aber ich versuche sie so oft einzubinden wie möglich, da sie, wenn man sie beherrscht, den code um vieles verkürzen können.

Pinetik hat gesagt…

Ja, das ist halt Geschmacksache, bzw die Frage was man will. Mit regex spart man im Sourcecode schon einige Zeichen. Damit ist die Datei ein paar Byte kleiner und man hat es etwas schneller getippt. Ob man es deswegen auch schneller programmiert lasse ich mal außen vor. Das Problem mit regexp ist, dass selbst wenn man es gut kann, ist es immer noch aufwendig sie zu lesen. Zu mindestens wenn es etwas komplizierteres ist. Das macht die Fehlersuche und Umprogrammierung später recht aufwendig. Meiner Erfahrung nach verbringt man jedoch mehr Zeit mit Fehlersuche und Weiterentwicklung als mit dem erstmaligen "Code runterschreiben". Darum bringt es mir persönlich mehr, wenn die Sourcen leicht verständlich sind, als wenn die Datei ein paar Byte kleiner ist und ich etwas weniger auf die Tastatur drücken musste. Mit Sourcecode von vor einem Monat hat man das Problem noch nicht so sehr, aber wenn der Kram ein paar Jahre alt oder gar von jemand anderem ist, dann viel Spaß... aber wie gesagt, das muss jeder für sich entscheiden. Wenn du regex im Halbschlaf runterließt wie die Morgenzeitung, dann ist das sicher ein guter Weg. ;)

Mihnea hat gesagt…

Check also this, to build regex from text: https://logxtender.net/?regex=on