Avatar billede c971875 Nybegynder
30. oktober 2001 - 11:22 Der er 6 kommentarer og
1 løsning

Regular expressio gymnastik

Jeg skal have konstrueret et regular expression der kan lave fornuftig html kode ud af dette:

Før listen
* Første punkt i listen
* Andet punk i listen
Efter listen

Skal laves om til
Før listen
<UL><LI> Første punkt i listen
<LI> Andet punk i listen</UL>
Efter listen

Til det formål har jeg lavet følgende to expressions:
$formattext = ereg_replace(\"(\\n\\*.+)+\",\"<UL>\\n\\\\1</UL>\", $formattext);
$formattext = ereg_replace(\"\\n\\*\", \"<LI>\", $formattext);

Men istedet for det rigtige resultat giver det:

Før listen
<UL><LI> Første punkt i listen
<LI> Andet punk i listen
Efter listen</UL>

Hvad gør jeg galt?
Avatar billede coderdk Praktikant
30. oktober 2001 - 11:45 #1
Har lavet et lille eksempel her:

  http://ekspert.coder.dk/rep.php
Avatar billede myplacedk Nybegynder
30. oktober 2001 - 11:57 #2
Bare for også lige at have det i arkivet, her er essensen:

$pat = array(\'/\\s*?\\*\\s*?(.*?)\\n/s\',\'/(<li>.*<\\/li>)/s\');
$rep = array(\'<li>\\\\1</li>\',\'<ul>\\\\1</ul>\');
$txt = preg_replace($pat,$rep,$txt);
echo \"$txt\";
Avatar billede coderdk Praktikant
30. oktober 2001 - 12:13 #3
myplacedk> nå ja, det må jeg lige gøre til en vane :) Paste det vigtige her! Tak =)
Avatar billede c971875 Nybegynder
30. oktober 2001 - 17:12 #4
Tak for det.

BTW: jeg syntes ikke at jeg er stødt på / (forward slash) i afsnittet om reg_exp i min bog om PHP. Hvad betyder /\\s ?
Avatar billede coderdk Praktikant
30. oktober 2001 - 17:29 #5
forward slash bruger man i preg_* du har sikkert læst noget om ereg_*
preg_* er såkaldte PCRE - Perl Compatible Regular Expressions :) De er efter sigende noget hurtigere end ereg funktionerne - og så kan du bruge regex i de fleste sprog hvis du kan PCRE :)
Se lidt mere her:

  http://dk.php.net/pcre
  http://dk.php.net/manual/en/pcre.pattern.modifiers.php <- her kan du se hvad /s betyder :)

  http://dk.php.net/manual/en/pcre.pattern.syntax.php <- her kan du se hvad \\s betyder
Avatar billede myplacedk Nybegynder
30. oktober 2001 - 23:16 #6
Og så kan preg-funktionerne nogle ting, som jeg i hvert fald ikke har fundet en nem metode til i den almindelige ereg. ;-)
Avatar billede c971875 Nybegynder
31. oktober 2001 - 19:42 #7
Tak igen
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester