Reguläre Ausdrücke 1: Einführung & normale Zeichen
Reguläre Ausdrücke sind im Grunde genommen recht einfach zu erlernen. Das schwierige ist das Zusammensetzen des Gelernten. In dieser kleinen Artikelreihe sollen 11 einfache Regeln vorgestellt werden. Aber zuerst sollte die Definition sitzen. Reguläre Ausdrücke sind Suchbegriffe. Man kann dafür bestimmte Spezialzeichen verwenden, die auf einen Text passen müssen.
Regel 1
Besondere Zeichen sind: . ? * + { } [ ] ( ) | \ ^
und $
. Wenn diese Zeichen in einem regulären Ausdruck auftauchen, haben sie eine spezielle Bedeutung. Alle anderen Zeichen haben keine besondere Bedeutung und stehen sozusagen für sich selbst. Klingt etwas verwirrend, deswegen einige Beispiele:
logfile
passt auf logfile
, jedoch nicht auf LogFile
, da in UNIX/Linux normalerweise zwischen Groß- und Kleinschreibung unterschieden wird – wie auch hier. -:#
passt auf @-:#:!
, aber nicht auf #:-
. Das heißt, dass reguläre Ausdrücke nicht auf ein ganzes Wort passen müssen; sie können auch nur ein Teil eines Textstrings „matchen“.
Da Lernen ohne Ausprobieren oder Nutzen in der Praxis keinen Spaß macht, hier noch ein paar praktische Tipps zum Ausprobieren:
Wie oben schon erwähnt, unterstützt z.B. grep
reguläre Ausdrücke. Man kann also Text in eine Datei schreiben und diese dann „grepen“:
1 2 3 4 5 | tcr@triton ~ $ echo "Testtext" > test.txt tcr@triton ~ $ grep test test.txt tcr@triton ~ $ grep Test test.txt Testtext tcr@triton ~ $ |
Wer weder UNIX/Linux noch cygwin für Windows zur Verfügung hat, kann z.B. auf www.regex-tester.de seine Ausdrücke testen. Im oberen Fenster wird der Text eingegeben, darunter der reguläre Ausdruck. Darunter muss noch „Treffer anzeigen“ abgehakt werden und mit einem Klick auf „REGEX TESTEN“ wird losgelegt. Da erst eine Regel erklärt wurde, sind die regulären Ausdrücke noch langweilig; es kann nur spannender werden. Nächsten Dienstag geht’s richtig los. Sucht euch also ein Programm oder eine Seite mit dem/der ihr zufrieden seid und mit der ihr gut üben könnt.
PS: Regex und Regexp sind Abkürzungen für regular expressions (dt. reguläre Ausdrücke) und bedeuten also genau das gleiche.
Schöner Beitrag.
Habe vor kurzer Zeit unter http://www.itblogging.de/linux/regulare-ausdrucke/ ebenfalls über die Regulären Ausdrücke gebloggt. Ich finde das grep Werkzeug ist heutzutage nicht mehr wegzudenken im Linuxsystem. Damit umzugehen spart dem Anwender oft eine Menge Zeit und Nerven.
Weiter so!