SkÃ¥ne Sjælland Linux User Group - http://www.sslug.dk Forside   Tilmelding   Postarkiv   Forum   Kalender   Søg
MhonArc Dato: [Date Prev] [Kronologisk oversigt] [Date Next]   TrÃ¥d: [Date Prev] [Oversigt trÃ¥de] [Date Next]   MhonArc
 

Re: [PERL] lille split/pattern/andet problem



* 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


 
Forside   Tilmelding   Postarkiv   Oversigt   Kalender   Søg

 
 
Henvendelse vedrørende websiderne til <www_admin>. Senest ændret 2005-08-10, klokken 19:53
Denne side vedligeholdes af MHonArc .