Hey allen,
Ik ben nu al een middagje zoet met het oplossen van een vervelend probleem en ik kom er echt maar niet achter wat het is. Maar zoals jullie waarschijnlijk wel herkennen ligt het vast aan iets heel simpels, maar zie ik dat niet omdat ik er al te lang naar kijk...
Ik ben bezig met een BBCode parser en gebruik daarvoor een regular expression om allereerst de mogelijke tags uit de string te halen. Dit is de volgende expressie (met aanroep):
Wat dit zou moeten doen is alles matchen in de vorm van "[tag]tekst[/tag]", met optioneel nog parameters voor tag, dus bijvoorbeeld "[tag param1=20]tekst[/tag]".
Ik gebruik dus preg_match_all om de var $matches te vullen met mogelijke tags. So far so good, en die data kan ik perfect gebruiken in de parser.
Echter, er zijn gevallen waarbij de parser gewoon stopt, en na wat zoekwerk heb ik een specifiek voorbeeld gevonden waarvan ik hoop dat jullie daar wat aan hebben. Het parsen van de volgende tekst gaat perfect:
Echter, wanneer ik bij beide tables nog een row toevoeg gaat het is... Dus ik pas de string aan naar:
Wanneer ik dit door bovenstaande expressie heenhaal zijn er ineens geen resultaten! Iemand enig idee?
Ik ben nu al een middagje zoet met het oplossen van een vervelend probleem en ik kom er echt maar niet achter wat het is. Maar zoals jullie waarschijnlijk wel herkennen ligt het vast aan iets heel simpels, maar zie ik dat niet omdat ik er al te lang naar kijk...
Ik ben bezig met een BBCode parser en gebruik daarvoor een regular expression om allereerst de mogelijke tags uit de string te halen. Dit is de volgende expressie (met aanroep):
PHP:
1
| preg_match_all('#\[(.+?)=?(.*?)\](.+?)\[/\1\]#s', $string, $matches) |
Wat dit zou moeten doen is alles matchen in de vorm van "[tag]tekst[/tag]", met optioneel nog parameters voor tag, dus bijvoorbeeld "[tag param1=20]tekst[/tag]".
Ik gebruik dus preg_match_all om de var $matches te vullen met mogelijke tags. So far so good, en die data kan ik perfect gebruiken in de parser.
Echter, er zijn gevallen waarbij de parser gewoon stopt, en na wat zoekwerk heb ik een specifiek voorbeeld gevonden waarvan ik hoop dat jullie daar wat aan hebben. Het parsen van de volgende tekst gaat perfect:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
| [table] [tr] [th]Test[/th] [th]Test2[/th] [/tr] [tr] [td]Content2[/td] [td]Content3 Bla[/td] [/tr] [tr] [td]Content5[/td] [td]Content6 Bla[/td] [/tr] [tr] [td]Conten7[/td] [td]Content8 Bla[/td] [/tr] [/table] [table] [tr] [th]Test11[/th] [th]Test12[/th] [/tr] [tr] [td]Content13[/td] [td]Content14 Bla[/td] [/tr] [tr] [td]Content15[/td] [td]Content16 Bla[/td] [/tr] [tr] [td]Content17[/td] [td]Content18 Bla[/td] [/tr] [/table] |
Echter, wanneer ik bij beide tables nog een row toevoeg gaat het is... Dus ik pas de string aan naar:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
| [table] [tr] [th]Test[/th] [th]Test2[/th] [/tr] [tr] [td]Content2[/td] [td]Content3 Bla[/td] [/tr] [tr] [td]Content5[/td] [td]Content6 Bla[/td] [/tr] [tr] [td]Conten7[/td] [td]Content8 Bla[/td] [/tr] [tr] [td]Conten7[/td] [td]Content8 Bla[/td] [/tr] [/table] [table] [tr] [th]Test11[/th] [th]Test12[/th] [/tr] [tr] [td]Content13[/td] [td]Content14 Bla[/td] [/tr] [tr] [td]Content15[/td] [td]Content16 Bla[/td] [/tr] [tr] [td]Content17[/td] [td]Content18 Bla[/td] [/tr] [tr] [td]Conten7[/td] [td]Content8 Bla[/td] [/tr] [/table] |
Wanneer ik dit door bovenstaande expressie heenhaal zijn er ineens geen resultaten! Iemand enig idee?
Eigenaar/brouwer Milky Road Brewery