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