zOrg wrote:
....
<!--#include [virtual|file]="(.*)"-->
and it dont match any include string
square brackets "[]" specify a character class
Your regexp matches
<!--#include v="anything"-->
and
<!--#include |="someotherthing"-->
and
<!--#include e="nothing"-->
etc, etc, etc :)
i tried
<!--#include (virtual|file)="(.*)"-->
and it works, finding all include strings but returning the value
"file" or "virtual" in the first element of the $matches array
(because of parenthesis), i dont need it.
Right, "()" starts a subpattern that will be grabbed.
The file name is grabbed to the third element of the $matches array
($matches[2]).
To start a subpattern that you don't want to grab use the (?:subpattern)
syntax.
$regexp = '<!--#include (?:virtual|file)="(.*)"-->';
i dont know if i'm missing something but i saw this "alternative"
syntax on many exemples over the net ( [alternative1|alternative2] )
can someone light my regex quest path ?
check the php manual for regexps
http://www.php.net/manual/en/pcre.pattern.syntax.php http://www.php.net/manual/en/pcre.pattern.modifiers.php
You might want to try "the regex coach"
http://www.weitz.de/regex-coach/
--
--= my mail box only accepts =--
--= Content-Type: text/plain =--
--= Size below 10001 bytes =--