Thread Reguläre Ausdrücke: richtig interpretieren (6 answers)
Opened by Patrick at 2004-04-16 11:41

format_c
 2004-04-16 12:14
#81618 #81618
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
[quote=Knuddlbaer,16.04.2004, 10:05]
Code: (dl )
(.+?)# matcht einen oder mehr Character (minimales Matching) und Captured diese in $1


Braucht man das ? da überhaupt ?
Das .+ sagt aus das mindestens 1 beliebiges Zeichen folgen muss (bis unendlich) und ? sagt das es kein oder einmal vorhanden sein muss ?![/quote]
Das ? hat eine andere Bedeutung wenn es hinter einem Multimatching Operator steht.
Kommt auf die zu matchende Zeichen kette an und was genau gematcht werden soll.
Das kleine Testscript sollte dir zeigen warum man da ? grauchen könnte:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
use strict;
my $string = q'hier steht der text den ich in $1 haben möchte# Ab hier soll er in $2 aufgenommen werden # gelle';
print "Versuch mit minimalen Patternmatching:\n";
$string =~ /^(.+?)\s*#\s*(.*)/;
print "\$1: $1\n";
print "\$2: $2\n";
print "----\n";
print "Versuch mit maximalen Pattermatching\n";
$string =~ /^(.+)\s*#\s*(.*)/;
print "\$1: $1\n";
print "\$2: $2\n";
print "----\n";


Gruß Alex\n\n

<!--EDIT|format_c|1082103383-->

View full thread Reguläre Ausdrücke: richtig interpretieren