Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> удалить из текста все цифры, кроме дат в формате [dd/mm/yyyy] 
:(
    Опции темы
JDmitry
Дата 17.6.2009, 11:19 (ссылка)   | (голосов:4) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 5.3.2009

Репутация: нет
Всего: нет



надо регулярка которая бы делала такое:
есть текст вида:
Привет вывфв фы произвольный текст [11/12/2009]
надо что бы регулярка по всему тексту удаляла все цифры и приэтом не удаляла то что написано в скобках [11/12/2009] и при этом проверяла что первые 4 цифры по 2 цифры через / а последние обезательно 4
Спасибо smile 

Это сообщение отредактировал(а) JDmitry - 17.6.2009, 11:50
PM MAIL   Вверх
SamDark
Дата 17.6.2009, 12:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрый кот
***


Профиль
Группа: Участник
Сообщений: 1424
Регистрация: 25.7.2006
Где: Voronezh

Репутация: 10
Всего: 38



JDmitry, 
Тут одной регуляркой не очень удобно.

По-моему лучше пробежать по тексту, найти всё вида  [11/12/2009], заменить на токены (например, _#_, _##_, _###_). Потом порезать все цифры и заменить обратно.


--------------------
rmcreative.ru — Это жжж неспроста...
yiiframework.ru — О фреймворке Yii на русском.
reggi — здесь я регистрирую домены
PM MAIL WWW GTalk Jabber MSN   Вверх
icewind
Дата 17.6.2009, 12:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 393
Регистрация: 11.4.2009
Где: Ростов-на-Дону

Репутация: 20
Всего: 20



Одной удалить все не соответствующие символы, а за одно и привести к нужному виду. А второй проверить
Код

$str = "Hello! Here is some 934 text 230 string. Posted [17/06/09]";   

echo $str . "<br />";

$str = preg_replace('~(?<!\[|/)\d(?!\]|/)~si', '', $str);
if( !preg_match('~\[\d{2}/\d{2}/\d{2}\]~', $str) )
{
   echo "there is no date";
}

echo $str;


Это сообщение отредактировал(а) icewind - 17.6.2009, 12:58


--------------------
user posted image
PM MAIL Skype   Вверх
JDmitry
Дата 17.6.2009, 12:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 5.3.2009

Репутация: нет
Всего: нет



Можно и не одной а целым блоком кода если возможно!

Добавлено через 3 минуты
icewind, ваша регулярка подходит отлично только вопрос при дате 2009 мне выдаёт 29 тойсть нули режит и регулярка видемо расчитана на 2 конечные цифры а их там 4
PM MAIL   Вверх
icewind
Дата 17.6.2009, 13:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 393
Регистрация: 11.4.2009
Где: Ростов-на-Дону

Репутация: 20
Всего: 20



Пардон, не доглядел. Тогда можно попробовать так
Код

$str = "Hello! Here is some 934 text 230 string. Posted [17/06/2009]";   

echo $str . "<br />";

$str = preg_replace('~(?<!\[|/)\d(?!\]|/|\d{1,2}\])~si', '', $str);
if( !preg_match('~\[\d{2}/\d{2}/\d{4}\]~si', $str) )
{
   echo "there is no date";
}

echo $str;



--------------------
user posted image
PM MAIL Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0558 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.