36 / 36 / 4
Регистрация: 17.05.2012
Сообщений: 157
|
||||||
1 | ||||||
Удаление повторяющихся слов17.12.2013, 22:01. Показов 16504. Ответов 10
Метки нет (Все метки)
Ребята, пишу первое регулярное выражение. Нужно удалить повторяющиеся слова в строке без учета регистра.
Я сделал так:
Подскажите, что я сделал не так? Спасибо
0
|
17.12.2013, 22:01 | |
Ответы с готовыми решениями:
10
Удаление из массива повторяющихся элементов Удаление повторяющихся слов Удаление повторяющихся слов Поиск повторяющихся слов и их удаление |
36 / 36 / 4
Регистрация: 17.05.2012
Сообщений: 157
|
|
17.12.2013, 22:10 [ТС] | 3 |
Так он удаляет все =\
0
|
18.12.2013, 13:24 | 4 |
Сообщение было отмечено как решение
Решение
вообще, задача не совсем подходит для регулярок. Вернее подходит но это примерно как пузырьковая сортировка: памяти кушать будет мало, однако сложность алгоритма высокая (вроде стремится к O(n^2), но можно попробовать посчитать точнее, при необходимости). но если нужно именно ими, то как-то так:
Код
php -r "$text='aa bb cc Bb';echo preg_replace('/(\b\w++\b)(?=.*?\1)/si', '', $text);" ваша регулярка Код
\s(\w+\s)\1 Добавлено через 3 минуты
3
|
0 / 0 / 0
Регистрация: 18.12.2013
Сообщений: 2
|
||||||
18.12.2013, 15:31 | 5 | |||||
NEbO, Прошу прощения что встреваю в тему просто самому нужно удалить повторы слов, то что вы показали работает, НО она удаляет все повторы а мне надо первое слово оставить и удалять только остальные слова которые его повторяют
Помогите пожалуйста а то СЕОшник замучил совсем Добавлено через 1 час 17 минут В итоге при помощи NEbO, получилась такая функция
0
|
36 / 36 / 4
Регистрация: 17.05.2012
Сообщений: 157
|
|
18.12.2013, 16:27 [ТС] | 6 |
NEbO, Спасибо! Работает! Правда только с английскими буквами в utf -8.
0
|
0 / 0 / 0
Регистрация: 18.12.2013
Сообщений: 2
|
|
18.12.2013, 16:31 | 7 |
Почему только с английскими буквами у меня прекрасно работает с русскими буквами в utf-8
0
|
36 / 36 / 4
Регистрация: 17.05.2012
Сообщений: 157
|
|
18.12.2013, 16:34 [ТС] | 8 |
Не знаю)
NEbO, вот Вы сказали, что моя задача не совсем под регулярки. А допустим удалить слова, у которых с обеих сторон одинаковые знаки препинания,подходит?
0
|
18.12.2013, 17:29 | 9 |
Код
php -r "$text='aaa ,bcd? ,tyu, bb'; echo preg_replace('~([^\s])\b\w++\b\1~u', '', $text);" но ни в первом ни во втором случае это не настолько критично что прям взять выкинуть и все. очень часто бывают регулярки и похуже. если вам неинтересны все эти выкладки по сложности алгоритмов, не мучайтесь и не терзайте себе душу
1
|
36 / 36 / 4
Регистрация: 17.05.2012
Сообщений: 157
|
|
18.12.2013, 17:40 [ТС] | 10 |
Огромное спасибо!
0
|
NEbO
|
18.12.2013, 17:45
Удаление повторяющихся слов
#11
|
0
|
18.12.2013, 17:45 | |
Строки. Удаление повторяющихся слов Удаление повторяющихся слов в строке Удаление повторяющихся слов из файла Удаление повторяющихся слов из стоки на C Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |