Регулярное выражение для сопоставления одних и тех же слов в тексте - PullRequest
0 голосов
/ 17 апреля 2019

Например, у меня есть текст:

слово1 слово2 - это слово3
(примечание word1 может быть == word2 == word3)

Я хочу, чтобы мои регулярные выражения работали, когда расстояние между словами word ( i ) <= <strong>N . Расстояние - это количество слов между словами слово .

Расстояние между word1 и word2 id 0.

Расстояние между word2 и word3 равно 1.

Расстояние между словом 1 и словом 3 (= 2) не должно учитываться.

Я делаю регулярное выражение для решения этой проблемы, но оно учитывает расстояние между первым и последним одним и тем же словом. Как я могу это исправить?

(\b\w+\b)\W+((\b\w+\b)\W+){N,}?\1

Для моего текстового примера мне нужно регулярное выражение, которое будет найдено совпадением, только когда N = 0 или 1.

(\b\w+\b)\W+((\b\w+\b)\W+){0,}?\1
(\b\w+\b)\W+((\b\w+\b)\W+){1,}?\1

Но теперь это работает и при N = 2

(\b\w+\b)\W+((\b\w+\b)\W+){2,}?\1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...