Limetten-HeaderText-Header

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 Pfeil

Einige gute Tutorials:

Buchtipp:

Jeffrey Friedl Mastering Regular Expressions, O'Reilly