Ik ben bezig met een PHP CSS parser (moet uiteindelijk VB worden, maar dat doet er niet toe). Na talloze sites over RegExps doorgeplozen te hebben zit ik nog steeds met m'n handen in het haar. Ik wil het commentaar (formaat: /* comment */) eruit strippen. Een voor de hand liggende regexp is de volgende (PCRE):
Met natuurlijk het probleem dat 'ie greedy is en bij meerdere commentaarblokken ook hele stukken CSS mee wegstript.
Hoe kan ik nu aangeven dat de letterlijke string '*/' niet mag voorkomen binnen een comment? Of is er een manier om die greediness in preg_replace uit te zetten?
PHP:
1
| $css = preg_replace('/\/\*.+\*\//', '', $css); |
Met natuurlijk het probleem dat 'ie greedy is en bij meerdere commentaarblokken ook hele stukken CSS mee wegstript.
PHP:
Werkt ook niet, omdat er in het commentaar ook de tekens '*' en '/' kunnen voorkomen, alleen niet de letterlijke string '*/'.1
| $css = preg_replace('/\/\*[^\*\/]+\*\//', '', $css); |
Hoe kan ik nu aangeven dat de letterlijke string '*/' niet mag voorkomen binnen een comment? Of is er een manier om die greediness in preg_replace uit te zetten?