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