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 ]