[php/regexp] Expressie vindt te veel :(

Pagina: 1
Acties:
  • 32 views sinds 30-01-2008

  • metaal
  • Registratie: Juli 2001
  • Laatst online: 31-01-2025
Ik heb een regexp gebouwd om een table uit een html bestand te halen:
code:
1
result = preg_match('!<TABLE width=100% border=0>((\n|.)*)</TABLE>!', $content, $matches);

Hij vindt mijn table wel, alleen pakt hij tabellen die erna komen ook mee, omdat hij niet zoekt naar de eerst voorkomende </TABLE> maar naar de laatst voorkomende </TABLE>.

Weet iemand hoe ik deze exp moet aanpassen om de eerste </TABLE> te vinden in plaats van de laatste?


edit:
plusje uit de exp weggehaald. hoor er niet in thuis

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Ben je je vorige topic kwijt?

Je moet ? gebruiken om de greediness te regelen.

Who is John Galt?


  • metaal
  • Registratie: Juli 2001
  • Laatst online: 31-01-2025
Ok, misschien wat slimmer. Zal em daar ff achteraan posten

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Op donderdag 21 februari 2002 16:32 schreef metaal het volgende:
Ok, misschien wat slimmer. Zal em daar ff achteraan posten
tomato heeft het antwoordtaat zelfs al gegeven in je andere topic :D
? is een greediness modifier, zodat de quantifier * ungreedy ('lazy', al vind ik dat een slechte benaming) wordt. Dit voorkomt dat je bij meerder tabellen in een keer van de eerste openings <table> tot de laatst sluitings </table> matcht.

Who is John Galt?


  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Dan kan deze dus op slot :) . Een centrale discussie lijkt mij een stuk beter.

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


Dit topic is gesloten.