Без последовательности комбинации вариантов в строке слов регулярных выражений

najusaxem

Новичок
Регистрация
08.08.2019
Сообщения
4
Благодарностей
0
Баллы
1
Подскажите пожалуйста, а как можно грамотно и не прямолинейно взять регулярным выражением все ключевые слова в строке, без учета последовательности текста в строке, а также последовательность ключевых слов регулярного выражения.

Код:
((Попроб|попроб|ПОПРОБ|Проб|ПРОБ|проб|Спроб|СПРОБ|спроб).*?(ещё|ще|Ще|ще|ЕЩЁ|Ещё|Снов|СНОВ|снов).*?(|раз|Раз|РАЗ))
Я бы мог сделать подобным планом стри строки ключевых слов и просто 3 раза поменять строки местами, соеденить в одну строку и разделить | объеденив в одни скобки, а как можно сделать еще, что не прибегать к прямолинейному способу:

(Попроб|попроб|ПОПРОБ|Проб|ПРОБ|проб|Спроб|СПРОБ|спроб).*?
(ещё|ще|Ще|ще|ЕЩЁ|Ещё|Снов|СНОВ|снов).*?
(|раз|Раз|РАЗ)

к примеру нужно захватить все строки:

HTML:
попроб іва снов
попроб  снов
попроб снов
попробува снов
снов попроб
снова разок попробівал1
снова попробівал разик
сново спроб  раз
 

najusaxem

Новичок
Регистрация
08.08.2019
Сообщения
4
Благодарностей
0
Баллы
1
Альтернативный вариант
Код:
((Попроб|попроб|ПОПРОБ|Проб|ПРОБ|проб|Спроб|СПРОБ|спроб)|(ещё|ще|Ще|ще|ЕЩЁ|Ещё|Снов|СНОВ|снов)|(раз|Раз|РАЗ)).+
А как можно еще достичь цели и улучшить результат, по становлению знначиня взятия точных соответствий слов с установлением количества?

С установкой количества сделал так:
Код:
\w{2,3}((Попроб|попроб|ПОПРОБ|Проб|ПРОБ|проб|Спроб|СПРОБ|спроб)|(ещё|ще|Ще|ще|ЕЩЁ|Ещё|Снов|СНОВ|снов)|(раз|Раз|РАЗ)).+
По чему вырезало слово ключевое?

Но теряется рядность.

Как правильно откорректировать регулярку, чтобы не был в учете поряток слов в искомом тексте и не было учета слов в регулярном выражении.

Цель - максимально найти заданное количество целевых ключевых слов в разнообразном порядке в искомом тексте.
 
Последнее редактирование:

najusaxem

Новичок
Регистрация
08.08.2019
Сообщения
4
Благодарностей
0
Баллы
1
Если использовать просто такую регулярку
Код:
((Попроб|попроб|ПОПРОБ|Проб|ПРОБ|проб|Спроб|СПРОБ|спроб)|(ещё|ще|Ще|ще|ЕЩЁ|Ещё|Снов|СНОВ|снов)|(раз|Раз|РАЗ)).+
к тексту:
HTML:
1 попроб іва снов
2 попробsdfsdf  снов 23424
3 попроб снов sdf
4 попробува снов
раз 5 снов попроб
6 tot asd еще
7 ще
8 dgdgdfg снова попробівал разик dfg dg dg
9 сново спроб  раз
10 dfsd sdf sdf спро
11 234234234 о спроб edzxrt
то берет строку с единичным совпадение, а нужно, чтобы взяло все, где совпадет 2-3 части слова, вообще тут на 3 слова расчет, но и 2 слова берет... но при этом оно комбинирует расстановку слов, задача почти удовлетворена, но теперь проблема в количестве - как брать нужное заданное к этому всему... Как правильно выставить?
Кто может подсказить?
 

najusaxem

Новичок
Регистрация
08.08.2019
Сообщения
4
Благодарностей
0
Баллы
1
Чуть видимо исправил
Код:
(\w{2,3}.+(((Попроб|попроб|ПОПРОБ|Проб|ПРОБ|проб|Спроб|СПРОБ|спроб)|(ещё|ще|Ще|ще|ЕЩЁ|Ещё|Снов|СНОВ|снов)|(раз|Раз|РАЗ)).+))
к тексту:
HTML:
1 попроб іва снов
2 попробsdfsdf  снов 23424
3 попроб снов sdf
3 попроб раз снов sdf 132
3 попроб снов sdf раз 123
4 попробува снов
раз 5 снов попроб
6 tot asd еще
7 ще
8 dgdgdfg снова попробівал разик dfg dg dg
9 сново спроб  раз
10 dfsd sdf sdf спро
11 234234234 о спроб edzxrt
раз еще попроб 321
sdf sdf sdf
sdfsdfsdfsdf попроб 5646685161685
как удалить все строки не содержащие перебор ключей в регулярки или не брать строки где только одно совпадение ключа?
Не могу понять, кто может помочь?
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 613
Благодарностей
4 601
Баллы
113
это задача не для регулярок
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)