| 
	
 | 
 Posted by Justin Koivisto on 11/06/07 02:23 
Schroeder, AJ wrote: 
> Justin Koivisto wrote: 
>> Schroeder, AJ wrote: 
>>> Hello group, 
>>> 
>>> I am attempting to remove double quotes from the beginning and 
>>> ending of a string. Admittedly, I am not the best with regular 
>>> expressions, but I do have two that work with preg_replace(). Here 
>>> they are: $pattern = '[^"]';    <--- removes the beginning double quote 
>>>     $pattern = '["$]';    <--- removes the ending double quote 
>>> 
>>> But when I try to make this all one statement with: 
>>> 
>>>     $pattern = '[^"].*["$]'; 
>>> 
>>> PHP throws a warning with an unknown modifier '.'. I then tried to 
>>> enclose '.*' in parentheses and I get an unknown modifier '('. 
>>> 
>>> This is getting beyond my regex knowledge, if anyone has any advice 
>>> on this it would be greatly appreciated. 
>>> 
>>> Thanks in advance, 
>>> 
>>> AJ Schroeder 
>>> 
>>> 
>> when using preg_* you need escape chars for the expression.... 
>> 
>> your first patterns should look something like: 
>> 
>> $pat = '`^"`'; // quote at beginning of string 
>> 
>> $pat = '`"$`'; // quote at end of string 
>> 
>> $pat = '`^"(.*)"$`'; // single-line string that starts and ends with 
>> a quote 
>  
> Hmm, maybe I am that dense, but that last expression seemed to torch the  
> entire string and return nothing. The first two work no problem. 
>  
> Still confused...  
 
The last pattern assumes the string is a single line (no \r or \n in  
it), and both begins and ends with " 
 
This would match that pattern: 
"The fox jumped over the lazy dog." 
 
This would not: 
The fox jumped over the "lazy" dog. 
 
If you want to match as in the second string, try something more along  
the lines of: 
 
$pat = '`"([^"]*)"`'; 
 
When you are unsure how your patterns are matching, try something like  
this to view it quickly: 
 
if(preg_match_all($pat,$string,$m)){ 
     echo '<pre>'; 
     print_r($m); 
     echo '</pre>'; 
} 
 
 
see the manual page for preg_match_all if you are not sure what the $m  
array means. 
 
--  
Posted via a free Usenet account from http://www.teranews.com
 
  
Navigation:
[Reply to this message] 
 |