Regulary

Honza Pazdziora adelton na informatics.muni.cz
Pondělí Srpen 21 16:35:30 MEST 2000


On Mon, Aug 21, 2000 at 03:46:21PM +0200, Vladimír Fux wrote:
> 
> Tohle jsem zatim nezkusil, ale verim, ze bude fukcni taky:
> 
> > $text =~ s/(adresa)=($url)?(\/?)(.*)/\1=$url\/\4/;
> 
> Akorat jsem zatim u teto druhe varianty od Undergrounda
> neprisel na to, co znamena cast vyrazu
>  ?(V?)

;-) Ono je to ?(\/?), tedy backslashovane lomitko.

Otaznik znamena, ze predchozi cast tam muze a nemusi byt. Cili regexp

	s/(adresa)=($url)?/$1=$url/g;

znamena, ze za adresa= muze a nemusi byt to $url, a at uz tam je nebo
neni, ma se vykousnout (pokud tam nebylo, tak se vykousne prazdny
retezec) a dat zpet. Je to asi i rychlejsi nez to pouziti lookaheadu,
v tomto jednoduche pripade. Jenom upozornuji na vhodnost toho \Q\E,
protoze ve www.krtek.cz bez quotovani znamena tecka jakykoli znak, coz
muze zpusobit v jistem malem mnozstvi pripadu problem. 

-- 
------------------------------------------------------------------------
 Honza Pazdziora | adelton na fi.muni.cz | http://www.fi.muni.cz/~adelton/
 .project: Perl, DBI, Oracle, MySQL, auth. WWW servers, MTB, Spain, ...
------------------------------------------------------------------------


Další informace o konferenci Perl