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