Regularni vyrazy
DADAJ Marián
dadaj na asset.sk
Pondělí Srpen 21 13:22:11 MEST 2000
Podla tvojej specifikacie by malo toto stacit :
$text=~s/(adresa).*\W(\w+\.html)\Z/\1=$url\2/gi;
> S pozdravom
> Ing. Marian Dadaj
>
-----Original Message-----
From: Vladimmr Fux [mailto:fux na infoline.cz]
Sent: Monday, August 21, 2000 12:21 PM
To: Multiple recipients of list PERL
Subject: Regularni vyrazy
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
__________ Informacia od NOD32 1.42 (20000808) __________
Tato sprava bola preverena systemom NOD32 pre Exchange.
http://www.nod32.com
Další informace o konferenci Perl