Ik ben nu een UBB parser aan het bouwen (altans dat probeer ik) gebasseerd op regular expression. Ze werken best mooi, maar ik stuit nu op een paar problemen.
Ik ben nu bezig met de img-tag en ik krijg het maar niet echt voor elkaar om het goed te krijgen. Ik begrijp inmiddels hoe regular expressions werken (thnx to drm (tutorial)
), maar ik snap niet wat ik hier fout doe.
de volgende tags moeten worden ondersteund:
Nu gebruik ik deze methode om de boel te replacen:
Waarbij de Regular expression (in variable ImageExpression) is:
En de replace code is:
Nu heb ik hierbij een problemen.
Hierbij pakt hij die 300 als border en die 400 als height, maar dat wil ik niet. Ik wil gewoon dat hij de volgorde gewoon normaal aanhoud. Ik krijg dan dus deze HTML:
Ik wil eigenlijk deze html krijgen:
) en dan als bijv. border leeg is, dat hij dan ook niet border meegeeft in de html.
Hoe krijg ik dat met regular expressions voor elkaar?
Samenvatting:
Voor deze meuk krijg ik deze html als output en dat is fout:
Ik ben nu bezig met de img-tag en ik krijg het maar niet echt voor elkaar om het goed te krijgen. Ik begrijp inmiddels hoe regular expressions werken (thnx to drm (tutorial)
de volgende tags moeten worden ondersteund:
code:
1
2
3
4
| [img]http://...[/img] [img=400]http://...[/img] //die 400 = width [img=400,300]http://...[/img] //die 400 = width en 300 = height [img=400,300,1]http://...[/img] //zelfde als hierboven alleen 1 = border |
Nu gebruik ik deze methode om de boel te replacen:
Visual Basic .NET:
1
2
| Dim ImageTag As New Regex(ImageExpression, RegexOptions.IgnoreCase) UBB = ImageTag.Replace(UBB, ImageReplace) |
Waarbij de Regular expression (in variable ImageExpression) is:
code:
1
| \\[img=?(?<width>[0-9]*?),?(?<height>[0-9]*?),?(?<border>[0-9]*?)\](?<image>.*?)\\[/img\] |
En de replace code is:
code:
1
| [img]""${image}""[/img] |
Nu heb ik hierbij een problemen.
code:
1
| [img=400,300]http://...[/img] |
Hierbij pakt hij die 300 als border en die 400 als height, maar dat wil ik niet. Ik wil gewoon dat hij de volgorde gewoon normaal aanhoud. Ik krijg dan dus deze HTML:
HTML:
1
| [img]"http://..."[/img] |
Ik wil eigenlijk deze html krijgen:
HTML:
Ik wil dus dat hij de goede volgorde aanhoud met die tokens (zo heten ze toch 1
| [img]"http://..."[/img] |
Hoe krijg ik dat met regular expressions voor elkaar?
Samenvatting:
code:
1
2
3
4
| [img]http://...[/img] [img=400]http://...[/img] [img=400,300]http://...[/img] [img=400,300,1]http://...[/img] |
Voor deze meuk krijg ik deze html als output en dat is fout:
code:
1
2
3
4
| [img]"http://..."[/img] [img]"http://..."[/img] [img]"http://..."[/img] [img]"http://..."[/img] |
[ Voor 26% gewijzigd door eghie op 19-10-2004 18:48 ]