Hallo iedereen,
Voor een behoorlijk grote applicatie wil ik templates parsen, en wil hierin ook if-lussen gebruiken. Dit werkt in principe. Ik heb een flinke poos geleden hiervoor een zeer lastige regex geschreven:
/if\s{0,}\([\s\n]{0,}(.*?)[\s\n]{0,}(==|\!=|\>|\<|\<=|\>=)[\s\n]{0,}(.*?)[\s\n]{0,}\)[\s\n]{0,}\{[\s\n]{0,}(.*?)[\s\n]{0,}\}(;|(\s{0,}(else)\s{0,}\{\s{0,}(.*?)\s{0,}\};))/si
Een voorbeeld template:
if( "aa" == "aa" ) {
if( "bb" == "bb" ) {
blaat
};
};
Het probleem is dat hij nu het eerste beste sluithaakje gebruikt '};'. Daardoor vind het script ook maar één if-lus. Als ik dus slechts één if gebruik of ze onder elkaar zet werkt het wel.
Heeft iemand misschien een idee hoe het eventueel wel gaat werken? Het hoeft niet perse met deze regex en wellicht is er meer nodig dan alleen een regex. Ik hoop dat iemand mij kan helpen
