Например, у меня есть текст:
слово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