> -----Original Message-----
> From: John W. Holmes [mailto:[EMAIL PROTECTED]]
> Sent: 24 December 2002 00:44
>  
> If you want to use some of PHP's special characters in your 
> expression,

Don't you mean "preg's special characters"? Or even "PHP special characters which are 
also preg special characters", as it's this duality of specialness that leads to the 
necessity of double-escaping!

> such as $, you must escape it twice. For example: 
> 
> $matchme = "\$example"; 
> if (preg_match("/\$example/", $matchme)) { 
> 
> will not be matched because PHP interprets the \$ and passes it as $.
> Instead, you must do this: 
> 
> if (preg_match("/\\\$example/", $matchme)) {

This is the main reason I prefer to use *single*-quoted strings whenever possible in 
preg_ calls -- the above could more legibly be written as:

    if (preg_match('/\$example/', $matchme)) {

This is an instance where I'd even tend to prefer to write single-quoted strings 
concatenated to bare variables, rather than using double-quoted strings and 
variable-interpolation:

    if (preg_match('/\$'.$example.'\./', $matchme)) {

rather than

    if (preg_match("/\\\$$example\\./", $matchme)) {

Cheers!

Mike

---------------------------------------------------------------------
Mike Ford,  Electronic Information Services Adviser,
Learning Support Services, Learning & Information Services,
JG125, James Graham Building, Leeds Metropolitan University,
Beckett Park, LEEDS,  LS6 3QS,  United Kingdom
Email: [EMAIL PROTECTED]
Tel: +44 113 283 2600 extn 4730      Fax:  +44 113 283 3211 

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to