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