> -----Original Message----- > From: John W. Holmes [mailto:[EMAIL PROTECTED]] > Sent: 24 December 2002 00:44 > > I don't know. I just got that from reading the manual. The very first > user comment on the preg_match page.
Sorry, misread this before and took the explanation below as John replying to chrisbolt -- but actually, it's John *quoting* chrisbolt, isn't it? In which case, I'll chip in further with: > ---- > chrisbolt at home dot com > 12-Mar-2000 03:23 > > If you want to use some of PHP's special characters in your > expression, > such as $, you must escape it twice. For example: $ is both a PHP special character in double-quoted strings, and a special character in preg pattern matches (meaning "start of string or line") -- so it first has to be escaped for preg, giving \$, and then the \ and the $ each have to be escaped for the PHP double-quoted string giving "\\\$". Basically, if you put your pattern in a double-quoted string, every time you want to pass a \ to preg (say as an escape for a special character such as ., or as part of a character class such as \d) you have to assess whether it needs escaping for PHP, leading to a double backslash in the PHP string. The safest strategy is just to double it every time, as this will always be de-escaped by PHP to a single \ in the string which is then passed to preg. If you use single-quoted strings for your preg pattern, you don't get this problem as the only character that needs escaping for PHP is then the single quote itself! 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