|
Posted by Justin Koivisto on 11/06/07 02:22
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]
|