Hallo,
ich habe aus einem String was rauszuziehen und arbeite dabei mit regulären Ausdrücken. Kein Problem, dachte ich, bis jetzt einer der Strings zufällig einen Zeilenumbruch enthielt, und zwar vor der Stelle, die mein Suchmuster enthält.
Kleines Beispiel:
#!/usr/bin/perl
my $S1 = 'Das ist ein beliebiger Text.';
my $S2 = 'Das ist' . "\n" . ' ein beliebiger Text.';
$S1 =~ /(.+ein)/;
print 'Variante ohne "\n": ' . $1 . "\n";
$S2 =~ /(.+ein)/;
print 'Variante mit "\n": ' . $1 . "\n";
Bei der ersten Variante kommt natürlich „Das ist ein“ raus, bei der zweiten aber nur " ein".
Die Ursache ist mir klar: Der Punkt steht für alles außer „\n“. Gibt es das auch ohne diese Einschränkung? Oder wie komme ich sonst zu einem Ergebnis, welches das „\n“ noch enthält?
Danke,
Kristian