regex Frage
am 16.10.2006 18:52:38 von muede
Hallo,
kann mir mal jemand bitte diese Verhalten erläutern ?
$_ = "A\nB\nC\nD\n";
# Gibt 4-mal den String aus :
print while ( /\w/g );
# Gibt den String unendlich oft aus :
print while ( /\w/ );
# Gibt alles gar nichts aus, terminiert :
print while ( /^\w$/g );
print while ( /^\w$/ );
my $pat = '/\w/g' ;
print while ( $pat[0] );
Danke.
muede
Re: regex Frage
am 16.10.2006 19:49:16 von Frank Seitz
muede wrote:
> kann mir mal jemand bitte diese Verhalten erläutern ?
>
> $_ = "A\nB\nC\nD\n";
>
> # Gibt 4-mal den String aus :
> print while ( /\w/g );
>
> # Gibt den String unendlich oft aus :
> print while ( /\w/ );
>
> # Gibt alles gar nichts aus, terminiert :
>
> print while ( /^\w$/g );
> print while ( /^\w$/ );
> my $pat = '/\w/g' ;
> print while ( $pat[0] );
Ja, so ist das.
Was verstehst Du daran denn nicht bzw. was erwartest stattdessen?
Grüße
Frank
--
Dipl.-Inform. Frank Seitz; http://www.fseitz.de/
Anwendungen für Ihr Internet und Intranet
Tel: 04103/180301; Fax: -02; Industriestr. 31, 22880 Wedel
Re: regex Frage
am 16.10.2006 19:50:30 von Frank Seitz
muede wrote:
> kann mir mal jemand bitte diese Verhalten erläutern ?
>
> $_ = "A\nB\nC\nD\n";
>
> # Gibt 4-mal den String aus :
> print while ( /\w/g );
>
> # Gibt den String unendlich oft aus :
> print while ( /\w/ );
>
> # Gibt alles gar nichts aus, terminiert :
>
> print while ( /^\w$/g );
> print while ( /^\w$/ );
> my $pat = '/\w/g' ;
> print while ( $pat[0] );
>
> Danke.
> muede
Ja, so ist das.
Was verstehst Du daran denn nicht bzw. was erwartest Du stattdessen?
Grüße
Frank
--
Dipl.-Inform. Frank Seitz; http://www.fseitz.de/
Anwendungen für Ihr Internet und Intranet
Tel: 04103/180301; Fax: -02; Industriestr. 31, 22880 Wedel
Re: regex Frage
am 16.10.2006 19:56:34 von Frank Wiegand
muede schrieb:
> kann mir mal jemand bitte diese Verhalten erläutern ?
Das ist ein Scherz, oder?
> $_ = "A\nB\nC\nD\n";
>
> # Gibt 4-mal den String aus :
> print while ( /\w/g );
perldoc perlre
/looping modifier
Wenn du nur den Treffer ausgeben willst, dann musst du ihn auch einfangen:
/match variables
> # Gibt den String unendlich oft aus :
> print while ( /\w/ );
Weil immer true.
> # Gibt alles gar nichts aus, terminiert :
> print while ( /^\w$/g );
Weils nicht matcht.
> print while ( /^\w$/ );
Weils nicht matcht.
Suchst du vielleicht /m (in Verbindung mit /g)?
> my $pat = '/\w/g' ;
> print while ( $pat[0] );
Was soll das sein?
Global symbol "@pat" requires explicit package name
> Danke.
> muede
Na dann.
Frank
Re: regex Frage
am 16.10.2006 20:02:10 von politza
Frank Seitz schrieb:
> muede wrote:
>
>
>>kann mir mal jemand bitte diese Verhalten erläutern ?
>>
>>$_ = "A\nB\nC\nD\n";
>>
>># Gibt 4-mal den String aus :
>>print while ( /\w/g );
>>
>># Gibt den String unendlich oft aus :
>>print while ( /\w/ );
>>
>># Gibt alles gar nichts aus, terminiert :
>>
>>print while ( /^\w$/g );
>>print while ( /^\w$/ );
>>my $pat = '/\w/g' ;
>>print while ( $pat[0] );
>>
>>Danke.
>>muede
>
>
> Ja, so ist das.
> Was verstehst Du daran denn nicht bzw. was erwartest Du stattdessen?
>
> Grüße
> Frank
Re: regex Frage
am 16.10.2006 20:37:58 von politza
rtfm
Verzeihung..
muede