Afficher un message
Vieux 06/11/2007, 03h22   #5
Justin Koivisto
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Regex with removing double quotes

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

  Réponse avec citation
 
Page generated in 0,05443 seconds with 9 queries