regexp na vyhledani =podu
Honza Pazdziora
adelton na fi.muni.cz
Čtvrtek Listopad 29 12:26:46 MET 2001
On Thu, 29 Nov 2001 10:14:11 +0000 (UTC), Lukas Zapletal <lzap na bach.cz> wrote:
>
> potreboval bych vyhledat a odstranit vsechny pody ze zdrojaku, pouzil jsem na
> to nasledujuci regexp:
>
> $skipline = 1 if ($line =~ /(^=pod)|(^=head1)|(^=head2)|(^=over)|(=item)|(^=back)|(^=begin)|(^=end)|(^=for)/);
>
> Problem spociva v tom, ze mi takovyto postup odstrani vsechno, kde se objevi
> jeden z retezcu (napr. '=pod' uprosred nejakeho retezce, nikoliv na zacatku
> radku).
>
> Nechapu to, vzdyt jsem pouzil '^'...
Chyba je nekde jinde. Takto napsany regularni vyraz opravdu zabira
pouze na zacatku radku. Ctete to po radcich? Mate kontrolni vypis,
takze vite bezpecne, ze je problem s nastavovanim toho $skipline
a ne s naslednym zpracovanim?
Jinak ten regularni vyraz jde asi trosku zjednodusit na
/^=(pod|head1|head2|over|item|back|begin|end|for)/
Zkuste se take podivat na CPAN, jestli v sekci Pod::* nenajdete modul,
ktery by se na Vase zadani dal primo pouzit.
--
------------------------------------------------------------------------
Honza Pazdziora | adelton na fi.muni.cz | http://www.fi.muni.cz/~adelton/
.project: Perl, mod_perl, DBI, Oracle, auth. WWW servers, XML/XSL, ...
Petition for a Software Patent Free Europe http://petition.eurolinux.org
------------------------------------------------------------------------
Další informace o konferenci Perl