Regularni vyrazy

Vladimír Fux fux na infoline.cz
Neděle Srpen 20 11:40:01 MEST 2000


Nazdar vsem

Nejak jsem se uplne zasukoval do regularnich vyrazu,
a potrebuju stohoven....

Chtel bych na jeden pruchod - tedy jednim prikazem
nahradit ci spise pozmenit frazi podle prikladu:

V promenne $url mam "http://www.novak.cz/"
V textu se mohou vyskytovat takoveto fraze:
A)   "adresa=http://www.novak.cz/neco.html"
B)   "adresa=neco.html"

Jak zajistit, aby v pripade B. to znamena,
pokud za textem adresa nenasleduje obsah
promenne $url se tam tento obsah doplnil,
tedy aby doslo doslo k uprave textu na tvar
"adresa=http://www.novak.cz/neco.html"
resp. "adresa=".$url."neco.html"

Myslel jsem si, ze to pujde takto:
...
$text=~s/(adresa=)(^[($url.*)])/\1$url\2/gi;
...
ale to je asi pitomost.

Jedine co mne napada je doplnit to tam vzdy,  a na
druhy pruchod nahradit dvoji vyskyt  vyskytem jednim.
...
$text=~s/(adresa=)/\1$url/gi;
$text=~s/$url$url/$url/g;
...
Ale to mi pripada jako desna prasecina.

Prijde nekdo na reseni s jednim pruchodem?

Diky Vladimir






Další informace o konferenci Perl