zOrg wrote:
....[color=blue]
><!--#include [virtual|file]="(.*)"-->
> and it dont match any include string[/color]
square brackets "[]" specify a character class
Your regexp matches
<!--#include v="anything"-->
and
<!--#include |="someotherthing"-->
and
<!--#include e="nothing"-->
etc, etc, etc :)
[color=blue]
> 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.[/color]
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)="(.*)"-->';
[color=blue]
> 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 ?[/color]
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 =--