You are here: Re: Regex help with removing double quotes « PHP Programming Language « IT news, forums, messages
Re: Regex help with removing double quotes

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]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация