K@rl: Regular Expression negieren

Beitrag lesen

$string="hallo";
$string =~ m/ll/;

dann steht im $& "ll",
wie kriege ich denn stattdessen "hao" in $&?

Aus der hohlen hand kann ich das momentan auch nicht beantworten, denn ich mache das immer so:

$string =~ m/^(.*)(ll)(.*)$/;

dann steht in $1 "ha"
.. in $2 "ll"
.. in $3 "o"

es gibt aber auch spezialvariablen für das, was vor dem gefundenen teilstring steht und für das danach -
<wühl> ... </wühl>
ah! da haben wir es ja:

$& gibt das gefundene Muster zurück
$1,$2,$3,... enthält das Muster der 1.,2.,3.,... runden Klammer
$+ enthält das Muster der letzten runden Klammer
$` enthält die Zeichenkette, die vor dem gefundenen Muster steht
$' enthält die Zeichenkette, die hinter dem gefundenen Muster steht

ciao
  K@rl