Как определить повторения внутри абзаца с помощью регулярных выражений - PullRequest
0 голосов
/ 14 февраля 2019

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

Попробовал что-то вроде этого безрезультатно:

[A-Z][^\\.;]*(This was a)[^\\.;]*

Например, абзацкак:

«Это было жаркое лето, и, кажется, не первое. На следующий отпуск я планирую поехать в Лас-Вегас. Это действительно было странное лето».

Регулярное выражение, которое может обнаружить, что мой абзац содержит 1 или более повторений в начале двух предложений ("Это был").Что будет правильным регулярным выражением?

1 Ответ

0 голосов
/ 14 февраля 2019

Это скажет вам, что есть хотя бы одно повторение и о чем.Он не скажет вам, где они находятся:

(\b\S.*\b).*[.;:]\s+\K\1
  • (\b\S.*\b) - самое длинное совпадение чего-либо, начинающегося с непространственного пространства, которое начинается и заканчивается на границе «слова»
  • .* - все что угодно:)
  • [.:;]\s+ - терминатор "предложения", за которым следует хотя бы один пробел
  • \K - не включать ничего до этого момента в совпадении
  • \1 - повторение части в скобках

https://regex101.com/r/NH7w1R/1/

...