Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Удалить всё кроме букв, цифр, пробела,точки, запятой, дефиса, двоеточия, слеша и скобок.
 
 автор: slaventy   (18.02.2009 в 10:18)   письмо автору
 
 

Всем привет! Уважаемые знатоки, вопрос к Вам.

Необходимо удалить всё кроме букв, цифр, пробела,точки, запятой, дефиса, двоеточия,слеша и скобок. Написал патерн.
$str = ereg_replace("[^a-zA-Zа-яА-Я0-9\., \(\)-:]", "", $str);

Всё работает, только не заменяет * + \
Помогите пожалуйста корректно составить выражение

  Ответить  
 
 автор: cheops   (18.02.2009 в 14:59)   письмо автору
 
   для: slaventy   (18.02.2009 в 10:18)
 

>Всё работает, только не заменяет * + \
Попробуйте модифицировать регулярное выражение следующим образом
$str = ereg_replace("[^a-zA-Zа-яА-Я0-9\.,\*\+ \(\)-:\\]", "", $str);

  Ответить  
 
 автор: AcidTrash   (18.02.2009 в 20:54)   письмо автору
 
   для: cheops   (18.02.2009 в 14:59)
 

Так не получится, причем вы вкладывая эти символы в диапазон, наоборот указываете, что они не должны заменяться.

Всё работает, только не заменяет * + \
Подойдет такое решение
$str = ereg_replace("[^-a-zA-Zа-яА-ЯёЁ0-9\., \(\):]", "", $str); 

  Ответить  
 
 автор: cheops   (19.02.2009 в 11:59)   письмо автору
 
   для: AcidTrash   (18.02.2009 в 20:54)
 

Диапазон отрицательный.

  Ответить  
 
 автор: AcidTrash   (19.02.2009 в 13:14)   письмо автору
 
   для: cheops   (19.02.2009 в 11:59)
 

Диапазон отрицательный.
В том то и дело, что если бы он был положительный, то перечисленные в нем символы должны заменяться. А так как он отрицательный, то идет перечисление символов, которые не должны заменяться.
Т.е. под вопрос автора
Всё работает, только не заменяет * + \
Это не подойдет, т.к. ему их тоже надо заменять.

  Ответить  
 
 автор: slaventy   (19.02.2009 в 13:56)   письмо автору
 
   для: AcidTrash   (18.02.2009 в 20:54)
 

О, спасибо. Всё работает, только не удаляется \ , а удаляется /. А нужно наоборот

  Ответить  
 
 автор: AcidTrash   (19.02.2009 в 14:12)   письмо автору
 
   для: slaventy   (19.02.2009 в 13:56)
 

$str = ereg_replace("[^-a-zA-Zа-яА-ЯёЁ0-9/., ():]", "", $str);       

  Ответить  
 
 автор: slaventy   (20.02.2009 в 10:19)   письмо автору
 
   для: AcidTrash   (19.02.2009 в 14:12)
 

Работает! Спасибо за помощь.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования