[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Удаление строк, состоящих из цифр
rbarom
Мне надо составить такое выражение, которое будет удалять строки, состоящие только из цифр, и не трогать никакие другие. Вместо удаленной строки должен вставляться html-тэг br Придумал я вот что:

$zahvat=preg_replace('/^[0-9]+$/','<br>',$zahvat);


Но оно не работает.
А в варианте:

$zahvat=preg_replace('/[0-9]+/','<br>',$zahvat); 


как и положено радостно удаляет вообще все цифры, которые видит.

Что не так-то?



Спустя 7 минут, 59 секунд (19.04.2011 - 17:24) ZSH написал(а):
модификаторы

$zahvat=preg_replace('/^[0-9]+$/m','<br>',$zahvat);

Спустя 6 минут, 6 секунд (19.04.2011 - 17:30) Trianon написал(а):
rbarom
что значит не работает?
$zahvat='987654321';
$zahvat=preg_replace('/^[0-9]+$/','<br>',$zahvat);
echo $zahvat;
что выводит?

Спустя 3 минуты, 6 секунд (19.04.2011 - 17:33) rbarom написал(а):
Цитата (ZSH @ 19.04.2011 - 14:24)
модификаторы

$zahvat=preg_replace('/^[0-9]+$/m','<br>',$zahvat);

Вот вроде по ссылке моя проблема решается. А код продолжает не работать.

Спустя 2 минуты, 21 секунда (19.04.2011 - 17:35) rbarom написал(а):
Цитата (Trianon @ 19.04.2011 - 14:30)
rbarom
что значит не работает?
$zahvat='987654321';
$zahvat=preg_replace('/^[0-9]+$/','<br>',$zahvat);
echo $zahvat;
что выводит?

br выводит. Но у меня из формы забирается текст, состоящий сильно больше, чем из одной строчки. Подозреваю, что проблема именно в этом.

Спустя 17 минут, 35 секунд (19.04.2011 - 17:53) Trianon написал(а):
вот и привели бы пример такого текста.

Спустя 8 минут, 36 секунд (19.04.2011 - 18:02) rbarom написал(а):
Цитата (Trianon @ 19.04.2011 - 14:53)
вот и привели бы пример такого текста.

горячая линия 8 800
499
горячие линии 8 800
499
8 800 2000
474
8 800 тарифы
451
звонок +на 8 800
448
8 800 +с мобильного

Спустя 35 минут, 52 секунды (19.04.2011 - 18:37) Dr.Mars написал(а):
/^[0-9]+(?:\\n|$)/

ваш кеп wink.gif

Спустя 16 минут, 40 секунд (19.04.2011 - 18:54) rbarom написал(а):
Цитата (Dr.Mars @ 19.04.2011 - 19:37)
/^[0-9]+(?:\\n|$)/

ваш кеп ;)

Мне это уже начинает казаться мистикой, но так тоже не работает. И в варианте
/^[0-9]+(?:\\n|$)/m

тоже.
Может там дело в разделителях? Скрипт же забирает из формы весь введенный текст в единую строку $zahvat. Но в самом-то вставленном в форму тексте много строчек. Как php распознает из разделители в таком случае? Мне просто кажется, что на варианты $, \n и ^ он не реагирует. Хотя вроде бы должен...

Спустя 41 минута, 23 секунды (19.04.2011 - 19:36) Dr.Mars написал(а):
попробуй так
/^[^a-zA-Zа-яА-ЯёЁ]+$/m

Спустя 28 минут, 18 секунд (19.04.2011 - 20:04) rbarom написал(а):
Цитата (Dr.Mars @ 19.04.2011 - 20:36)
попробуй так
/^[^a-zA-Zа-яА-ЯёЁ]+$/m

Ура! Оно работает!

Огромное спасибо. Теперь буду знать, что в таких случаях полезно попробовать пойти от обратного.

Спустя 1 минута, 34 секунды (19.04.2011 - 20:05) Dr.Mars написал(а):

Спустя 15 часов, 18 минут, 22 секунды (20.04.2011 - 11:24) Ulan написал(а):
судя по всему из формы приходят строки с windows окончанием строки \r\n
потому '/^[0-9]+$/m' не правильно работает.
вот так должно находить все '/^[0-9]+[\r]?$/m'

/^[^a-zA-Zа-яА-ЯёЁ]+$/m этот шаблон более 'жадный', и захватит также помимо цифр, все строки не содержащие букв, например смайлик : )
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.