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

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

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

 

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

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

тема: Телефон
 
 автор: Dead   (14.03.2008 в 12:46)   письмо автору
 
 

Есть телефон
380860000000

Необходимо после 7 символов с конца ставить "-"
Должно выглядеть так:
38096-0000000

   
 
 автор: SHAman   (14.03.2008 в 12:52)   письмо автору
 
   для: Dead   (14.03.2008 в 12:46)
 

preg_replace("(\d{7})$/", "-$1", $text);

   
 
 автор: Dead   (14.03.2008 в 13:01)   письмо автору
 
   для: SHAman   (14.03.2008 в 12:52)
 

Только ты помоему так имел в виду:

preg_replace("/(\d{7})$/", "-$1", $text); 


Спасибо

   
 
 автор: Dead   (14.03.2008 в 13:34)   письмо автору
 
   для: Dead   (14.03.2008 в 12:46)
 

Ещё вопрос.

   $pattern = "@[\d-\(\+) ]{6,}@"; 
    preg_match_all($pattern, $str, $output);


Этой регуляркой собираются телефоны из текста, но это выражение не берет такой телефон
9(067)0000000
и
8(0303)000000

Как доработать такую регулярку?

   
 
 автор: Wunderbar   (14.03.2008 в 15:55)
 
   для: Dead   (14.03.2008 в 13:34)
 

Вот там где в паттерне [ ... ] - не нужно экранировать (, ), +, * и прочую херню. А вот бекслеши в общем случае экранировать как раз надо. То есть паттерн вообще будет "@[\d()+ -]{6,}@", но в PHP-коде он будет "@[\\d()+ -]{6, }@". Но это необязательно.

[поправлено модератором]

   
Rambler's Top100
вверх

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