Forums Neueste Beiträge
 

s-modifier geht nicht

10/08/2013 - 11:10 von fmassion | Report spam
Hallo zusammen,

ich teste die Suche von Strings über Zeilengrenzen hinweg.

Die Datei ist UTF-8 codiert.

Der Testtext sieht so aus (jeweils mit linebreak):
-
Das ist ein Beispiel mit 3 Sàtzen
Das ist ein 1122-22-11 Format
Hier ist keine Zahl.
Hier ist kein Punkt
nur Text Hier ist nur Text ist aber nur Text
-

Der Code-Schnipsel:

foreach $satz (@satz) {
chomp $satz;
if ($satz =~ m/\d(?s)(.*)keine/g) {
$satz =~ s/$&/xxxx/g;
}
print "$satz";
}

Ich erwarte folgendes Ergebnis für die ersten drei Zeilen:
Das ist ein Beispiel mit xxxxx Zahl.

Der Code tut bei diesem Ausdruck nichts.
Wenn ich denselben Ausdruck in UltraEdit (Regex-Perl-Suche) eingebe, ist das Ergebnis korrekt.

Wo könnte das Problem liegen?
 

Lesen sie die antworten

#1 Georg Pfeiffer
10/08/2013 - 12:31 | Warnen spam
writes:

foreach $satz (@satz) {
chomp $satz;
if ($satz =~ m/\d(?s)(.*)keine/g) {


^

Das Fragezeichen ist ein Quantifyer und darf m. E. nicht direkt nach
der Klammer stehen.

Ähnliche fragen