Det hjalp... men så er mit spørgsmål... hvad betyder ? for jeg har læst og læst, men har ikke kunne få noget ud af det.
Hvad er forskælden mellem .* og .*?
Jeg ved at .* betyder alt, men hvad skal ? så gøre?
Videre til næste spørgsmål :o)
Dvs. at jeg ville kunne fange en tabel ved at skrive preg_match_all("'<table(.*?)/table>+'si",$str,$output))
Og hvis jeg vil have det bliver en bestemt tabel ved at skrive preg_match_all("'<table .*><tr.*><td.*>Jeg ved hvad der står.*<.*\/tr.*>.*(.*?)/table>+'si",$str,$output))
Normalt matcher en RegExp 'greedy', dvs. at den finder så lang en match som muligt ...
-- med spørgsmålstegnet på, indstilles matchingen til at være ungreedy, dvs., den stopper første gang, den efterfølgende tekst kommer, uden stopper den sidste gang det forekommer !-)
<table><tr> <td>Her er en celle</td> <td>Her er en celle til</td> </tr></table>
Nu var det mester reg.exp jeg tænkte på :o)Men table optræder kun en gang, og td og tr flere gange... kan man ikke få fat i dem ved at skrive <table.*>(<tr.*><td.*>(.*?)<\/td><\/tr>)*<\/table>?
OK... jeg har ikke helt forstået hvad [^>] gør efter som hver af en tr eller td jo slutter med det...
Nå men jeg skal jo kun have fat i dataen fra tabellen og ikke tabellen selv... så er det rigtigt forsået at jeg skal skrive: <table[^>]*>(<tr[^>]*>(<td[^>]*>(.*?)<\/td><td[^>]*>([0-9])<\/td><td[^>]*>([0-9])<\/td><td[^>]*>([0-9])<\/td><td[^>]*>([0-9])<\/td><td[^>]*>([0-9])<\/td>)+<\/tr>)+<\/table>/si
Altså først skal jeg have fat i holdnavnet... dvs (.*?) og bagefter i alle tallende der høre til det inden der kommer en tr mere... det gør jeg ved at skrive ([0-9])... er det ikke sådan jeg skal gøre det?
<table[^>]*> er bare en mere effektiv måde at skrive <table.*?> på.
Synes godt om
Ny brugerNybegynder
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.