sc*********@hotmail.com wrote:
On the PHP site on the preg_replace() function page (
http://us3.php.net/manual/en/function.preg-replace.php ), example 1
uses "@" signs in the regular expression members of the "search" array.
On another PHP site (
http://www.phpfreaks.com/phpmanual/p...g-replace.html ),
Example 5 is the same script except the regex array members use double-
then single-quotes.
Why?
Both scripts seem to work the same. I can find no documentation on how
the "@" sign affects how the regex is used.
A link to explanatory documentation would be highly appreciated.
The @ does nothing. In accordance with PERL syntax, you can use nearly
any non-alphanumeric characters to bracket regular expressions. People
usually stick with the /expression/ format, for among other things,
that's required in Javascript. Some people like to use @expression@
because in web application, you often search for the slash character
itself.
The following all do the same thing:
preg_match('|hello|', "hello");
preg_match('@hello@', "hello");
preg_match('/hello/', "hello");
preg_match('%hello%', "hello");
preg_match('#hello#', "hello");
preg_match('<hello>', "hello");
preg_match('?hello?', "hello");
preg_match('[hello]', "hello");
preg_match('&hello&', "hello");
preg_match('(hello)', "hello");
preg_match('=hello=', "hello");
Some are, of course, goofier than others.