- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Есть вот такая строка текста:
Нужно, чтобы на выходе получилось:
То есть, нужно поудалять все, кроме цифр и трех точек подряд "...". Текст - вообще любой, но везде есть цифры и "...".
В регулярных выражениях не силен, к сожалению. Очень надеюсь на помощь.
$text='6 месяцев ... 60 месяцев';
$text=preg_replace('@([0-9]+) .*?([0-9]+).*@smi',"$1...$2",$text);
echo $text;
---------- Добавлено 27.08.2012 в 23:59 ----------
ну или так:
$text=preg_replace('@([0-9]+).*?\.\.\..*?([0-9]+).*@smi',"$1...$2",$text);
$text='6 месяцев ... 60 месяцев';
$text=preg_replace('@([0-9]+) .*?([0-9]+).*@smi',"$1...$2",$text);
echo $text;
Спасибо, на php все работает. Десктопный софт, правда, такой синтаксис естественно не понимает. Надо как-то переписать без php-шных функций. То есть что-то типа:
но не так криво, как у меня. :)
вопросительные знаки попробуйте убрать
siv1987, то есть так?
так тоже не работает. :(
Вообще оно как-то странно реализовано - работает с заменой. Как-то так:
Вот тут есть примеры: http://sbfactory.ru/cd/?p=319
re:regexp|\1...\2
re:regexp|$1...$2
И это... там три точки подряд не могут быть одним символом (многоточие который)?
$text='6 месяцев ... 60 месяцев';
$text=preg_replace('@([0-9]+) .*?([0-9]+).*@smi',"$1...$2",$text);
echo $text;
---------- Добавлено 27.08.2012 в 23:59 ----------
ну или так:
$text=preg_replace('@([0-9]+).*?\.\.\..*?([0-9]+).*@smi',"$1...$2",$text);
s знаю и i знаю, а m - что такое ?
Пс: квантификатор жадности нужен U
И это... там три точки подряд не могут быть одним символом (многоточие который)?
Не, 3 тчк. Спасибо, сейчас попробую.
И так тоже не работает. Вот тут не может быть ошибки?
Спасибо, на php все работает. Десктопный софт, правда, такой синтаксис естественно не понимает. Надо как-то переписать без php-шных функций. То есть что-то типа:
но не так криво, как у меня. :)
Тяни буст и подключай, там есть регулярка )
Тяни буст и подключай, там есть регулярка )
:)
Я, наверное, не мудрствуя лукаво, буду внешним скриптом обрабатывать - раз на php все работает ).