[PHP] regex/preg_replace() difficulty

2003-10-01 Thread jonas_weber
Regular Expressions: How can I indicate that the contents of a term 
(user input*) needs to be treated as 'non-operators/control characters' 
(as *word* to match in that exact way)?
(* Because the term is a user's input I can't escape the control 
characters manually.)

Example:
$result = 
preg_replace('/('.$termWithOptionalBold.')(\/?span[^]*)*()/si', 
'span class=highlight\1/span', $result);

[If $termWithOptionalBold is a . (period) for example, any char will 
be matched--instead of only the .]

Any suggestions?

Thanks a lot for your effort!
Best wishes,
jonas
PS: Somewhere I read that '\Q' would do something like that but it 
didn't work.

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


Re: [PHP] regex/preg_replace() difficulty

2003-10-01 Thread Marek Kilimajer
You can escape the control characters manualy ;)

$termWithOptionalBold=str_replace(array('.','\','$' 
),array('\.','\\','\$' ), $termWithOptionalBold);

[EMAIL PROTECTED] wrote:

Regular Expressions: How can I indicate that the contents of a term 
(user input*) needs to be treated as 'non-operators/control characters' 
(as *word* to match in that exact way)?
(* Because the term is a user's input I can't escape the control 
characters manually.)

Example:
$result = 
preg_replace('/('.$termWithOptionalBold.')(\/?span[^]*)*()/si', 
'span class=highlight\1/span', $result);

[If $termWithOptionalBold is a . (period) for example, any char will 
be matched--instead of only the .]

Any suggestions?

Thanks a lot for your effort!
Best wishes,
jonas
PS: Somewhere I read that '\Q' would do something like that but it 
didn't work.

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


Re: [PHP] regex/preg_replace() difficulty

2003-10-01 Thread CPT John W. Holmes
From: [EMAIL PROTECTED]

 Regular Expressions: How can I indicate that the contents of a term 
 (user input*) needs to be treated as 'non-operators/control characters' 
 (as *word* to match in that exact way)?
 (* Because the term is a user's input I can't escape the control 
 characters manually.)
 
 Example:
 $result = 
 preg_replace('/('.$termWithOptionalBold.')(\/?span[^]*)*()/si', 
 'span class=highlight\1/span', $result);
 
 [If $termWithOptionalBold is a . (period) for example, any char will 
 be matched--instead of only the .]
 
 Any suggestions?

I got one!

http://www.php.net/manual/en/function.preg-quote.php

---John Holmes...

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