Удалить повторо слов

reeemmmy

Постоялец
Регистрация
8 Авг 2009
Сообщения
65
Реакции
20
Есть запросы в которых некоторые слова встречаются два и более раз
Как бы регуляркой удалить эти повторы?

спримеры

скачать драйвер самсунг дарайвер самсунг
скачать мп3 скачать
скачать мп3 скачать мп3
 
Есть запросы в которых некоторые слова встречаются два и более раз
Как бы регуляркой удалить эти повторы?

спримеры

скачать драйвер самсунг дарайвер самсунг
скачать мп3 скачать
скачать мп3 скачать мп3

Нагуглил. Я работал только с простыми регулярками... Код протестил у себя на хосте. Работает.

Код:
<?php
$str = 'скачать мп3 скачать мп3 ';
$str = preg_replace('/(\b[\pL0-9]++\b)(?=.*?\1)/siu', '', $str);
echo $str;
?>

на выходе:
Код:
скачать мп3

С "скачать драйвер самсунг дарайвер самсунг" не прокатило, по понятной причине. Убрало только "самсунг"
 
С "скачать драйвер самсунг дарайвер самсунг" не прокатило, по понятной причине. Убрало только "самсунг"

О! Хотя бы есть представление, что это в принципе возможно
Теперь бы решить полностью ) если асы в регулярках есть, очень выручите, базу почистить нужно
 
я бы разбил в массив по пробелу (explode) и убрал все повторяющиеся ключи (Для просмотра ссылки Войди или Зарегистрируйся), потом склеил обратно через пробел (implode)
так проще, быстрее и надежнее.

например, в вашем regexp-e /(\b[\pL0-9]++\b)(?=.*?\1)/siu вы использовали маленькое u - это Unicode,
а должны были, по идее, использовать большое U - Ungreedy, чтобы .* отрабатывала до первого совпадения, а не до последнего.
и так далее, мелкие ошибки там отлавливать можно долго.
 
прекрасно удалять (заменять) текст по маске в программе BRED3.0 Ссылку писать не буду. Не знаю как ставиться админ к этому. Но гугл точно найдёт.
 
Есть очень мощный универсальный софт для обработки текстов - поиск и замена на скорости сравнимой с работой HDD - гигабайты данных обрабатывает буквально за минуты - называется textpipe,
найдете самизнаетегде
Если будет нужна помощь при работе в нем - обращайтесь в личку.
 
Назад
Сверху