Gerd: Regulärer Ausdruck

Beitrag lesen

Hallo,

$feld =~ s/(?<!$var)${var}{$times}(?=[^$var])/$1$Ersatztext$2/g;
.....
$1 und $2 sind aber gar nicht bekannt!?

Weil solche Konstrukte mit einem Fragezeichen am Anfang nur gruppiert, jedoch nicht gemerkt werden.

Hierzu zwei Fragen:
1. Wie erhalte ich dann in diesem Falle die Strings vor und nach dem gefundenen Muster?
2. Statt $feld = /(?<!X)X{$times}(?=[^X])/;
   kann man offensichtlich schreiben:
     my $pat = qr/(?<!X)X{$times}(?=[^X])/;
     $feld =~ $pat;
   Wie verhält es sich bei einem Ausdruck der Art "s/....../g"?
   Wenn ich pragmatisch ran ginge hieße es ja:
     my $pat = qrs/....../g;
       nämlich qr gefolgt von dem reg. Ausdruck.
       Das kann aber sicher nicht sein, allerdings
     my $pat = qr~s/....../g~;
       ist es wohl auch nicht.
Gibt es da auch wieder einen Trick?
Einen erholsamen Sonntag ohne dumme Fragesteller (außer mir) wünsche ich euch.
Gerd