![]() |
[PHP] preg_replace()
Ik ben nu bezig om met PHP een UBB-parser te maken, maar ik loop vast bij een opsomming.
Ik moet dus dit kunnen doen: (1 sterretje per rij wegdenken) Code:
[list*]
Dan kan ik wel dit doen: PHP-code:
Ik moet dus eigenlijk kijken of er TUSSEN[list] en [SLASH/list]een rij is met[*]. Is dit niet zo, dan mag[list] ook niet worden geparsed. Wie weet de oplossing? |
Weet je zeker dat dit sowieso werkt?
Blokhaken hebben namelijk zelf ook een functie in de regexp, ze groeperen namelijk mogelijke tekens. Bovendien gebruik je een / (forwardslash) IN je regexp, terwijl dat teken de velden in een regexp van elkaar scheidt (s/voor/na/). Het (.+?) stukje klopt in mijn ogen ook niet; de plus zegt dat het voorgaande patroon (. = alles behalve newline) één of meer keer herkend moet worden. Het vraagteken zegt daarentegen dat patroon NUL of één keer herkend moet worden. Ik denk dat je in dit geval alleen de + bedoelt :) PHP-code:
Om je echte probleem op te lossen, zul je het (.+) gedeelte moeten vervangen door een regexp die vereist dat het patroon[*] één of meer keer voorkomt. PHP-code:
Nu komt het grotere probleem.. de[*] vervangen met <li></li>.. dat kan nog lastig worden, dus success! |
Citaat:
|
Citaat:
Code:
[list.][*] 1[*] 2[*] enz..[/list][list.][*] A[*] B[*] enz..[/list] Code:
[*] 1[*] 2[*] enz..[/list][list.][*] A[*] B[*] enz.. Code:
[*] 1[*] 2[*] enz.. |
Citaat:
De greedy (gretig) pakt alles tussen de aller eerste en de aller laatste. Bij Code:
[list ][*]1[*]2[/list ][list ][*]3[*]3[/list ] Code:
[*]1[*]2[/list][list][*]3[*]3 Code:
[*]1[*]2 |
nice, bedankt!
(nu weer on-topique =P) |
Alle tijden zijn GMT +1. Het is nu 12:59. |
Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.