- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Как снизить ДРР до 4,38% и повысить продажи с помощью VK Рекламы
Для интернет-магазина инженерных систем
Мария Лосева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
можно ли создать регулярное выражение для функции preg_replace, которое будет удалять подряд два идущих друг за другом одинаковых слова (число пробелов между ними произвольно), при наличии произвольного числа исключений.
К примеру слово "лесной" исключение.
Исходный текст:
идет пешеход пешеход по дороге лесной лесной и радуется радуется очень сильно.
должно остаться:
идет пешеход по дороге лесной лесной и радуется очень сильно.
Помогите плиз с регуляркой!
PS Альтернативное решение с использованием оператора if я знаю. Нужен другой вариант.
см preg_replace_callback, а в вызываемой функции поместить сравнение с исключениями.
Зачем?...........
Помогите плиз с регуляркой!
Это будет совершенно непрозрачная и неуправляемая регулярка с непредсказуемым временем выполнения.
Понять как она работатет и изменить в ней что-то - будет серьёзной проблемой и чревато поломкой головного мозга.
Как простой вариант - explode в массив по пробелам, пробежаться по массиву и вычистить дубли(пропустив нужные исключения), и сделать implode по пробелам.
Для обработки слов перед .,!? - предварительно разбить по предложениям.
гы-гы а исключения тоже хотите в регулярку забить?
Напишите простейший скрипт-итератор. Регулярки тут не нужны.
Как-то так /([^\s]+\s)(\1)+/
/([^\s]+)[\s]+(?!лесной|быстро|пьяный)\1/
---------- Добавлено 10.04.2013 в 22:27 ----------
Это будет совершенно непрозрачная и неуправляемая регулярка с непредсказуемым временем выполнения.
Почему? :)
Ох, женщины :)
/([^\s]+)[\s]+(?!лесной|быстро|пьяный)\1/
Почему? :)
Проверьте на примере: 'бульон он для больной ой ведь здоровая я ясно?'
Слова бывают сложные: "мальчик-с-пальчик", "палочка-выручалочка"...
Непонятно, что считает ТС одинаковыми словами в примере: 'идет мальчик-с-пальчик пальчик в гипсе', и удовлетворяет ли результат работы регулярки ТЗ :)
Зачем?...........
Ну задание такое.... =) Найти альтернативное решение... Вообще это из задачника....
Там задачки и по хлеще были. Типа, как поменять переменные а и б местами без использования ц. Ну это я нашел, там с исключающим или прикол. А тут вот пока еще нет...
ВОТ ТЕКСТ ЗАДАЧИ:
Используя регулярные выражения, составьте программу, которая будет искать подряд идущие слова в тексте и заменять их одним. При этом Вам необходимо предусмотреть возможность добавления исключений (слов, которые будут пропускаться программой в случае повторения)
Примечание: Использование оператора if запрещается.
Непонятно, что считает ТС одинаковыми словами в примере: 'идет мальчик-с-пальчик пальчик в гипсе', и удовлетворяет ли результат работы регулярки ТЗ :)
одинаковыми словами считаются лишь подряд идущие слова. (вот как в ворде если два раза подряд набрать одно и тоже слово, то второе ворд подчеркивает.) Вот тот же принцип.
Т.е под словом понимается последовательность букв и цифр разделенных между собой пробелами.
Найти альтернативное решение...
Ну два альтернативных решений выше уже дали, вот еще одно немного улучшенное
find: /([^\s]+)\s+(?:\1(\s+|$|\.|,))+/
replace: $1$2
исключения юзать по варианту предложенному RiDDi.
как поменять переменные а и б местами без использования ц
В некоторых языках это "задачей похлеще" назвать нельзя.. python, например:
Вообще это из задачника....
Что за задачник такой? :)