Regular Expressions
Es gibt nichts besseres um Muster zu suchen/zu ersetzen.
Wichtig
Regular Expressions gibt es in
mehreren Varianten. So beispielsweise für die
Shell,
Java oder
Pearl. Während die letzten beiden standartisiert sind, kann es in der Shell zu unerwartetem Verhalten kommen.
Grundlegende Befehle
-
s/<muster>/<ersatz>/g Sucht nach muster und ersetzt dieses entsprechend. Das Flag g sorgt dafür, dass jedes Vorkommen von muster ersetzt wird.
Grundlegende Muster
-
^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[a-zA-Z]{2,5}$ Mit diesem Muster können Emailadressen erkannt werden.
Regular Expressions mit Pearl
Folgendes Pearl-Skript nimmt eine csv-Datei
liste.txt mit Einträgen der Form
Vorname;Nachname entgegen:
#!/usr/bin/perl
use strict;
use warnings;
open FILE, "<", "liste.txt" or die $!;
while (my $str = )
{
$str=~m/^([^;]+);([^;\s]+)\s*$/ and print "Vorname: $1 Nachname: $2\n"
}
Besonderheiten
- Der VI unterstützt verschiedene Arten von Regular Expressions, die dem Befehl
:s mitgegeben werden können. So steht z.B. :s/\v für " very magic "
Links
Regular Expressions bei
Wikipedia
Einige gute Tutorials:
Buchtipp:
Jeffrey Friedl Mastering Regular Expressions, O'Reilly