Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > замена скобок в регулярном выражении


Автор: JaneCHER 27.6.2008, 22:11
есть выраженьице $p_tel=ereg_replace("[^\) ;,0-9-\(]","", $p_tel); выдает ошибку. подскажите, пожалуйста, как избежать замены круглых скобок!!!! пустячок, а неприятно......... smile 

Автор: Glip 28.6.2008, 09:51
Код

REG_ERANGE
    (неправильное использование операторов области: в этом случае конец области появляется прежде ее начала); 

Код

ereg_replace("[^\);,0-9 -\(]","", $p_tel);

Автор: JaneCHER 30.6.2008, 18:15
Вау! Спасибо! Не подскажете, где можно достать литературку по этому вопросу? Шоп не мучиться долго!  smile 

Автор: bobik02 1.7.2008, 08:45

Например http://www.softtime.ru/info/fridl.php , в книжном варианте увы нигде не нашел :-( все говорят нету, тираж закончился

Автор: Feldmarschall 1.7.2008, 08:52
Glip, а точно ли надо было добавлять в символьный класс пробел?
Разве [^();,0-9-] не сработает?

JaneCHER, Что значит "выдает ошибку"? Ошибка не одна на все программирование. Надо конкретно писать - какую именно ошибку!
И вопрос желательно задавать более связно, например "у меня была регулярка [^;,0-9-]. я в неё решила добавить скобки. стало выдавать ошибку. как сделать правильно?". А не скакать от ошибок к скобкам.

А читать тут особо нечего. Экранировать надо те символы, которые имеют особое значение. И не экранировать те, которые не имеют.
в символьном классе (в квадратных скобках) круглые скобки никакого специального значения не имеют. А дефис - имеет. поэтому его надо либо экранировать, либо писать самым последним.

Автор: Glip 1.7.2008, 10:24
Цитата(Feldmarschall @  1.7.2008,  08:52 Найти цитируемый пост)
Glip, а точно ли надо было добавлять в символьный класс пробел?

а я его не добавлял, просто перенёс в другое место.

Автор: JaneCHER 1.7.2008, 22:31
Бобик, пасиппки тебе!!! Теперь я смогу не мучить народ дурацкими вопросами. И вам, народ, спасибо!!! После того, как я удалила из выражения пробел, скрипт начал работать гораааааааааздо быстрее! Ведь объем файлА стал меньше...........   smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)