s///g v kombinaci s (?<=)

Vaclav Sigmund sigi na radio.cz
Čtvrtek Září 5 14:58:37 MEST 2002


> $ perl -e '$a = "baa\n"; $a =~ s/(?<=b)a/b/g; print $a'
> bba
> 

> Ocekaval jsem vystup bbb, myslel jsem si, ze nejprve se nahradi prvni a 
> a pak druhe a, kdyz to chci "Replace globally, i.e., all occurrences." 
> Jak tohle funguje a kde se o tom da docist (v perlre a perlop jsem nic 
> nenasel) -- perl si ten retezec nemeni pod rukama? Mel jsem za to, ze 
> (zhruba a vagne receno) se posunuje po retezci, pokud najde match, 
> nahradi a hleda dalsi match od mista, kde skoncil minuly, tady to ale 
> vypada, jako by to hledal na nejake RO kopii.
> 
> Diky
> 
> P.

To, to se snad vyresi. Ale co proboha znamena ta vec s/(?<=b)
                                                        ^^^^^^

Neni to neco jako s/(?:b) ???

Myslel jsem ze RE rozumim, ale tuhle variantu neznam.





Další informace o konferenci Perl