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
|