regex Frage

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