Hallo iedereen,
Ik ben momenteel mijn eigen ubb parser aan het schrijven.
Om de ubb tags te vinden gebruik ik de volgede regex:
Voor simple [ b] [ /b] tags etc. werkt het perfect. Maar voor een tag met params niet.
Hij zou de volgende gewoon moeten kunnen pakken:
met <text> = "text" of 'text' of text
Ziet iemand wat ik fout doe in mijn regex?
Hij vind wel dat tags, maar hij matched hem verkeerd. (preg_match)
Met:
Ik ben momenteel mijn eigen ubb parser aan het schrijven.
Om de ubb tags te vinden gebruik ik de volgede regex:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| $regex = '#\[(?:'. // [ '(/?\w+)'.'|'. // /tag or tag '(?:'. // tag=val [p1=val [p2=val ... [pN=val]]] '(\w+)'. // tag '[ \t]*=[ \t]*'. // = '(?:'. // "val", 'val' or val '"([^"\n]*)"'.'|'. // "val" '\'([^\'\n]*)\''.'|'. // 'val' '([^\s\]]+)'. // val ')'. '(?:'. // <spacer>pN=val '[ \t]+'. // <spacer> '(\w+)'. // pN '[ \t]*=[ \t]*'. // = '(?:'. // "val", 'val' or val '"([^"\n]*)"'.'|'. // "val" '\'([^\'\n]*)\''.'|'. // 'val' '([^\s\]]+)'. // val ')'. ')*'. ')'. ')\]#'; // ] |
Voor simple [ b] [ /b] tags etc. werkt het perfect. Maar voor een tag met params niet.
Hij zou de volgende gewoon moeten kunnen pakken:
code:
1
2
3
| [url=<text>] [url=<text> p1=<text> p2=<text> ... pN=<text>] [url p1=<text> p2=<text> ... pN=<text>] |
met <text> = "text" of 'text' of text
Ziet iemand wat ik fout doe in mijn regex?
edit:
Gewijzid vanaf hier
Gewijzid vanaf hier
Hij vind wel dat tags, maar hij matched hem verkeerd. (preg_match)
Met:
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
| [url=www.google.com h='b' g="a" t=d] krijg ik deze lijst: [0] => [url=www.google.com h='b' g="a" t=d] [1] => [2] => url [3] => [4] => [5] => www.google.com // Tot hier is het goed, maar hierna word het wazig [6] => t [7] => a [8] => b [9] => d terwijl ik dit veracht: [0] => [url=www.google.com h='b' g="a" t=d] [1] => [2] => url [3] => [4] => [5] => www.google.com [6] => h [7] => [8] => b [9] => [10] => g [11] => a [12] => [13] => [14] => t [15] => [16] => [17] => d |
[ Voor 35% gewijzigd door vdvleon op 11-06-2009 00:47 ]