Thread "Fehler" bei Regulären Ausdrücken: Fehlerhaftes Verhalten pattern match (5 answers)
Opened by Gast at 2005-11-03 10:53

Gast Gast
 2005-11-03 10:53
#59641 #59641
Hallo zusammen,

mir ist ein seltsames Verhalten in Perl aufgefallen.
Wird auf eine Variable das selbe Pattern-Match in
mehreren IF-Abfragen hintereinander durchgeführt (mit globaler Erkennung!), so findet Perl den Match lediglich in jeder zweiten Abfrage!!!!
Ist euch so ein Verhalten schon mal aufgefallen? Und kann
jemand erklären aus welchen Gründen das so ist?

Das Programm lautet:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# /* INCLUDE */
use strict;

my $sFeld = "ParamSet";

if($sFeld =~ m/ParamSet/g)
{
print "1 mal gefunden\n";
}
if($sFeld =~ m/ParamSet/g)
{
print "2 mal gefunden\n";
}
if($sFeld =~ m/ParamSet/g)
{
print "3 mal gefunden\n";
}
if($sFeld =~ m/ParamSet/g)
{
print "4 mal gefunden\n";
}
if($sFeld =~ m/ParamSet/g)
{
print "5 mal gefunden\n";
}
if($sFeld =~ m/ParamSet/g)
{
print "6 mal gefunden\n";
}
if($sFeld =~ m/ParamSet/g)
{
print "7 mal gefunden\n";
}


Die Ausgabe beim Ausführen des Programms dann:
1 mal gefunden
3 mal gefunden
5 mal gefunden
7 mal gefunden

Vielen Dank schon mal für eure Hilfe!!\n\n

<!--EDIT|esskar|1131009924-->

View full thread "Fehler" bei Regulären Ausdrücken: Fehlerhaftes Verhalten pattern match