erlug
[Top] [All Lists]

Re: [Erlug] regex in perl

To: erlug@xxxxxxxxxxxxxx
Subject: Re: [Erlug] regex in perl
From: Ivan <darthxiong@xxxxxxxxx>
Date: Thu, 6 Jun 2002 18:14:00 +0200
On Thu 06 Jun 2002 17:19, you wrote:
> Penso che possa essere un baco nel quoting o nelle regex (ho chiesto
> lumi ai perlmonks)
> Coumnque questo programma mostra un caso in cui va.
>
> $orig='aaa([\+\-]{1})bbb';
> $qre="\\Q([\\+\\-]{\\E\\d\\Q})\\E";
> $bre='\(\[\\\\\+\\\-\]\{\d\}\)';
>
- snip -
>
> $str=$orig;
> $str =~ s!$bre!!;
> print "Replace against variable bslashed => $bre <=: $str\n";
>

incredibilmente $bre funziona! a colpo d' occhio, direi che cerca un \ 
di troppo, anche perche' se questa
$v = '\(\[\\\+\\\-\]\{\d\}\)';  s/$v//;
non funziona, questa invece
$v = '\(\[\\\,\\\.\]\{\d\}\)';  s/$v//;
che cerca questa stringa, [\,\.]{1}, funziona benissimo.
Sembra che il motore regex debba fare una passata in piu' su \\\\\+, 
forse a causa del +, che e' un quantificatore, per ridurlo ad un + 
"escapato".
Comunque e' strano.... e' il caso di un bug report ?
thx alf

-- 
   (@_  Ivan Fabris, S. Sofia (FC)  PowerPC & Linux Debian Woody  _*)
   //\      www.darthxiong.net   setiathome.ssl.berkeley.edu      /\\
   V_/_     www.folug.linux.it   pgp key @ www.keyserver.net     _\_V
                  Consigliere Forli Linux User Group 



<Prev in Thread] Current Thread [Next in Thread>