#regex
#регулярное выражение
Вопрос:
Например, у меня есть текст:
Word1 word2 — это word3
(обратите внимание, что word1 может быть == word2 == word3)
Я хочу, чтобы мое регулярное выражение работало, когда расстояние между словами word (i) <= N. Расстояние — это количество слов между словами word.
Расстояние между word1 и word2 равно 0.
Расстояние между word2 и word3 равно 1.
Расстояние между word1 и word3 (= 2) не следует принимать во внимание.
Я создаю регулярное выражение для решения этой проблемы, но оно учитывает расстояние между первым и последним одинаковыми словами. Как я могу это исправить?
(bw b)W ((bw b)W ){N,}?1
Для моего текстового примера мне нужно регулярное выражение, которое будет находить совпадения, только когда N = 0 или 1.
(bw b)W ((bw b)W ){0,}?1
(bw b)W ((bw b)W ){1,}?1
Но теперь это работает и при N = 2
(bw b)W ((bw b)W ){2,}?1
Комментарии:
1. Каково ваше определение расстояния ?
2. Ваша постановка проблемы довольно запутанна. Пожалуйста, приведите несколько примеров приемлемых и неприемлемых входных данных, которые иллюстрируют, что вы хотите сделать.
3. @revo Количество слов между одними и теми же словами.
4. Каким должен быть ожидаемый результат
N = 1
в вашем данном примере?5. Я подчеркиваю, каким должен быть ожидаемый результат .