Tobias Schlitt wrote:
> Hi all!
> 
> Kore and me just had an interessting discussion about the delimiter
> characters to be used in PCRE statements. The most common way (at least
> what I experienced) is to use slashes as delimiters, which results in
> constructs like the following one:
> 
> preg_match( '/foo.*bar/i', $subj, $matches );
> 
> In case I need to use a slash inside the regex itself, I need to escape
> it, thought. Therefore, if I know I need multiple slashes inside the
> regex, I tend to switch the delimiters to @ chars, to save me from
> escaping slashes. Still, then I need to escape any @ inside the regex:
> 
> preg_match( '@/foo/[EMAIL PROTECTED]@i', $subj, $matches );
> 
> Kore just told me, that he has switched to using normal braces as
> delimiters, which I did not know to be working at all:
> 
> preg_match( '(/foo/[EMAIL PROTECTED])i', $subj, $matches );
> 
> While this looks strange (at least to me) at the first glance, using
> braces seems to have several advantages over all other characters:
> 
> - You don't need to escape braces inside the regex, if you use braces as
> a delimiter, resulting in no more silly escaping of the delimiter chars
> at all.
> - In $matches[0] the whole match is saved, while all higher indexes
> contain deeper matching braces. Using braces as delimiters make this
> behaviour more logical.
> 
> While I'm almost convinced of using braces, I want to hear your opinions
> here. Kore and me want to use that style of delimiting regex in Webdav
> and I'm also thinking about migrating my other components regexes (if
> there are any). Any comments?

I would use braces only when there is a need to create the array of 
matches. If we use braces everywhere the $matches array will look 
complicated.

-- 
Alexandru Stanoi
eZ Components System Developer
eZ Systems | http://ez.no
-- 
Components mailing list
[email protected]
http://lists.ez.no/mailman/listinfo/components

Reply via email to