|
|||||||||||||||||||||||||||
* Kim Schulz (sslug@sslug) [2000-08-27 20:03]:
> vi skal have alt mellem <para TRANS> og </para> (hvor para ikke
> nødvendigvis er para), dog skal alle tags(<...></...>) fjernes.
> der skal tages højde for linieskift, da der skal sættes \n ind ved hvert
> linieskift.
Nu ved jeg ikke hvor sofistikeret en løsning I vil have. Hvis det skal
være quick-and-dirty kan I prøve noget i stil med
$text = q{
<para TRANS>Foo
bar
</para>
<para TRANS>
foo<bar
option=p>baz</bar>
</para>
};
@paras = split m-</para>.*?<para TRANS>-s,
$text; # NOTE: s option and non-greedy match (*?)
foreach (@paras) {
s-</?[^>]*>--gs; # NOTE: g,s option and non-greedy match.
print "\nParagraph:\n";
print;
}
Som udskriver:
Paragraph:
Foo
bar
Paragraph:
foobaz
Hvis det skal være mere avanceret kan I kigge på cpan efter XML/HTML
parsere eller hvis det skal være vildt bruge Parse::RecDescent som er et
genialt modul til at lave parsere.
- peter
--
ln -s /dev/random ~/.plan
|
||||||||||||||
|
||||||||||||||