Avatar billede plazm Nybegynder
30. januar 2007 - 13:07 Der er 1 kommentar og
1 løsning

først stoppe når der er fundet et par

Hej.
Det er lidt svært at forklare kort hvad det er jeg ønsker, men her kommer den lange forklaring:

Jeg har følgende regex (php)

/<tr>(.+?)1\. modul(.+?)<\/tr>/i

mit problem er nu at det som jeg prøver at smide det på kan se ud som følger:
<tr><td>1. modul</td><td>abe</td></tr>

og ud får jeg korrekt
<tr><td>1. modul</td><td>abe</td></tr>

men hvis jeg smider det på
<tr><td>1. modul</td><td><table><tr><td>abe</td></tr><tr><td>nisse</td></tr></table></td></tr>
så får jeg
<tr><td>1. modul</td><td><table><tr><td>abe</td></tr>

hvor jeg gerne ville have
hele strengen ud.

Mit problem er altså at hvis den sidste (.+?) indeholder et <tr> så skal den først stoppe når den har fundet en tilsvarende </tr> og så en </tr> til den første <tr>

Håber det giver mening :)
Avatar billede plazm Nybegynder
30. januar 2007 - 14:04 #1
kan se jeg skal have fat i noget rekursion, men kan ikke lige gennemskue hvordan det skal bygges op med <tr></tr> i stedet:

http://www.php.net/manual/en/reference.pcre.pattern.syntax.php#regexp.reference.recursive
Avatar billede plazm Nybegynder
08. februar 2007 - 19:41 #2
Jeg fik det ikke klaret med regex, men med nogle grimme loops.
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
Kurser inden for grundlæggende programmering

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