regex in meerdere lijnen
Mark van Veen
03/04/2005 21:01:00Hey ik ben bezig om een template parser te maken en daarom wilde ik <!-- loop * --!> gebruiken om code te herhalen, ik heb geprobeert regex te gebruiken maar dan wordt er maar op 1 regel gezocht :
Dit is de code die ik nu heb
<!-- loop(.*)!-->
Dit is de code die ik nu heb
<!-- loop(.*)!-->
PHP hulp
28/11/2024 09:57:40Mark van Veen
03/04/2005 21:12:00Ok, ik weet nu dat het mogelijk is om string als 1 line te gebruiken, in Regex coach lukt me dat dan nog wel, maar hoe gaat dat in PHP ?
<!-- loop (.*)!-->
<!-- loop (.*)!-->
Gewijzigd op 03/04/2005 22:00:00 door Mark van Veen
Martijn B
03/04/2005 21:18:00Ik ben zelf ook al weet een tijdje bezig met een template parser (oude versie):
http://www.phphulp.nl/php/scripts/5/320/
In de nieuwe versie komen ook regular expressions. Ik gebruik {!-- --} voor kommentaar in templates. Hier zijn een paar patterns:
Deze patterns doen het wel aardig. Ben zelf beginner hierin dus ik heb een beetje afgekeken ;d
Overigens bij mij geef je een loop zo aan:
http://www.phphulp.nl/php/scripts/5/320/
In de nieuwe versie komen ook regular expressions. Ik gebruik {!-- --} voor kommentaar in templates. Hier zijn een paar patterns:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
// Template kommentaar {!-- --}:
preg_match_all( "/{![ \r\n\t]*(--([^\-]|[\r\n]|-[^\-])*--[ \r\n\t]*)}/", $c, $m_search );
// Html kommentaar <!-- -->:
preg_match_all( "/\<![ \r\n\t]*(--([^\-]|[\r\n]|-[^\-])*[^\/\/]--[ \r\n\t]*)\>[\r\n]/", $c, $m_search );
// Javescript comments <!-- //-->:
preg_match_all( "/\<![ \r\n\t]*(--([^\-]|[\r\n]|-[^\-])*\/\/--[ \r\n\t]*)\>/", $c, $m_search );
?>
// Template kommentaar {!-- --}:
preg_match_all( "/{![ \r\n\t]*(--([^\-]|[\r\n]|-[^\-])*--[ \r\n\t]*)}/", $c, $m_search );
// Html kommentaar <!-- -->:
preg_match_all( "/\<![ \r\n\t]*(--([^\-]|[\r\n]|-[^\-])*[^\/\/]--[ \r\n\t]*)\>[\r\n]/", $c, $m_search );
// Javescript comments <!-- //-->:
preg_match_all( "/\<![ \r\n\t]*(--([^\-]|[\r\n]|-[^\-])*\/\/--[ \r\n\t]*)\>/", $c, $m_search );
?>
Deze patterns doen het wel aardig. Ben zelf beginner hierin dus ik heb een beetje afgekeken ;d
Overigens bij mij geef je een loop zo aan:
Gewijzigd op 03/04/2005 21:23:00 door Martijn B
Mark van Veen
05/04/2005 13:10:00Ok, ik had zelf al het goede al geprobeerd maar regex choach werkt anders dan die in php (niet Perl compatible denk ik) maar dit werkt bij mij goed :
preg_match("#\<!-- loop(.*?)\!-->#si", $this->output, $a);
preg_match("#\<!-- loop(.*?)\!-->#si", $this->output, $a);