Thread Reguläre Ausdrücke durch anderes ersetzten... (59 answers)
Opened by ppm1 at 2004-02-16 23:16

Strat
 2004-02-18 17:35
#80132 #80132
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
grundsaetzlich sieht ein regulaerer Ausdruck folgendermaszen aus:

$string =~ m/pattern/

wenn die Trennzeichen / sind, kann man das m auch weglassen

$string =~ /pattern/

das wird sehr haeufig gemacht. wenn jedoch ein anderes Trennzeichen verwendet wird (z.B. weil / sehr haeufig in pattern vorkommt und man nicht jedesmal \/ schreiben will, muss man das m schreiben:

$string =~ m|pattern|
oder
$string =~ m(pattern);
aber auch:
$string =~ m)pattern);

man kann sogar buchstaben oder zahlen als trennzeichen verwenden, wenn man nach dem m ein leerzeichen macht
$string =~ m xpatternx

Zu den Ankern ^ und $: wenn man in einem Ausdruck die Position des Vorkommens zum Anfang oder Ende hin festlegen kann, braucht die Regex-Engine nicht so viel suchen und man bekommt somit das Ergebnis schneller

$string =~ /^abcd$/i findet aBcD, aber auch abdc, nicht hingegen abcde oder bcab

siehe auch das Kapitel ueber die Regulaeren Ausdruecke auf http://www.fabiani.net/ -> Vortraege -> Einfuehrung in Perl
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/

View full thread Reguläre Ausdrücke durch anderes ersetzten...