- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

Как снизить ДРР до 4,38% и повысить продажи с помощью VK Рекламы
Для интернет-магазина инженерных систем
Мария Лосева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Есть фразы:
от 5-ти до 18-ти товаров
от 5-ти до 18
от 5-ти выше
5-ти выше
5-18
Нужно из этой фразы preg_match`ем вынимать цифры. Их может быть одна или две (как в примерах) строка может начинаться с цифры и заканчиваться цифрой. Цифры обязательно нужно получить отдельно и в шаблоне они должны быть разделены хотя бы пробелом или другим знаком.
preg_match("/(.*)([0-9]*)(.*)/", "от 5-ти до 18-ти товаров");
вот так не работает=((
а просто прочитать описание функции, прежде чем использовать, лень?
...а если почитать еще дальше, то можно узнать, что функция может возвращать еще и массив найденых вложений (что я и планирую использовать).
Если у кого-то есть другие решения - готов выслушать.
Вырезать все лишнее preg_replace - не вариант, так как останется у меня 518 и куда я его дену? мне нужно две цифры 5 и 18, отдельно.
хватит тупить. в указанном варианте вызова preg_match возвращает количество найденных соответствий.
mixed preg_match ( string $pattern, string $subject [, array $&matches [, int $flags [, int $offset]]] )
Ув. DiAksID, я понимаю, что ваш авторитет здесь гораздо выше моего. Но, все таки, это не дает вам право вести себя по хамски с участниками форума.
Я не первый день программирую и использую данные функции. Поэтому я в курсе что они возвращают. Мой вопрос был связан не с синтаксисом функции, а с составлением регулярного выражения "/(.*)([0-9]*)(.*)/" - вот такого текста.
preg_match("/(.*)([0-9]*)(.*)/", "от 5-ти до 18-ти товаров", $matches);
print_r($matches);
Прошу не оффтопить.
Если я выбрал не самый правильный способ - покажите как правильно.
---------- Добавлено 04.04.2012 в 09:24 ----------
"/([\s\d][\d+][\s\d]*)/" - вот так выдает Array ( [0] => 5 [1] => 5 )
"/([\s\d][\d+][\s\d])/" - вот так выдает Array ( [0] => 18 [1] => 18 )
Как склеить что бы в массиве было
Array ( [0] => 5 [1] => 18 ) ?
preg_match_all
(\d+)[^0-9]+(\d+)?
Отлично работает. Спасибо!
---------- Добавлено 04.04.2012 в 15:44 ----------
(\d+)[^0-9]+(\d+)?
вот что говорит скрипт на ваше выражение
5
мимо
мимо
5
Но, благодарю за попытку=)
вот что говорит скрипт на ваше выражение
ну так проверте ваш скрипт:)
ну так проверте ваш скрипт:)
Я вставил ваш вариант в скрипт sabotage. В цикле подаются разные фразы...
Вы проверяли ваш вариант в работоспособности или вы не проверяя утверждаете что он работает?
Если можно, выложите код вашей проверки вместе с фразой.