Матч повторяется 3 или более раз - PullRequest
0 голосов
/ 03 марта 2019

Это тестовое упражнение

Я хотел бы знать, если текст содержит слова с 4 или более символами , которые повторяются 3 или более раз втекст (в любом месте текста).Если это так, установите одну (и только одну) обратную ссылку для каждого слова.

Я попробовал код

(?=\b(\w{4,}+)\b.*\1)

Результаты возвращаются

Тест 10/39:Не работает, извините.Прочитайте описание задачи еще раз.Это соответствует словесному слову word

Tried

(?=(\b\w{4,}\b)(?:.*\b\1\b){2,})

Тест 22/39: Если определенное слово повторяется много раз, вы устанавливаете более 1 обратной ссылки (распространенная ошибка, я знаю).Вам не обязательно соответствовать первому вхождению слова.Можете ли вы избежать совпадения в> word word

Regex demo

1 Ответ

0 голосов
/ 03 марта 2019

Если я правильно понимаю ваш вопрос, это должно сделать то, что вы хотите:

(?=(\b\w{4,}\b)(?:.*\b\1\b){2})(?!(\b\w{4,}\b)(?:.*\b\1\b){3})

По сути, это то же самое, что и ваше регулярное выражение, ищет слово из 4 символов, которое повторяется, но оно ищет2 дополнительных случая (так появляется 3 раза).Слова, которые соответствуют, будут записаны в группе 1. Регулярное выражение включает в себя отрицательный прогноз на 3 повторения, поэтому оно не будет совпадать с одним и тем же словом дважды, если оно встречается 4 или более раз.

Демонстрацияна регулярной основе101

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...