Регулярное выражение: удалить дубликаты строк, которые находятся рядом друг с другом - PullRequest
0 голосов
/ 08 января 2019

Я извлек некоторый cc из Youtube, и я застрял со значениями, как показано ниже, и я не знаю, как с этим справиться. Я хорошо заменяю строки и другие вещи, но я действительно плохо, когда все становится серьезно: (

Это

 we
 all
 have
 a
 unique
 perspective
 on
 the
 we all have a unique perspective on the

 we all have a unique perspective on the
 world
 around
 us
 and
 believe
 it
 or
 not
 world around us and believe it or not

 world around us and believe it or not

следует заменить на:

we all have a unique perspective on the
world around us and believe it or not

1 Ответ

0 голосов
/ 08 января 2019

Используя это регулярное выражение, вы можете избавиться от всех строк, которые имеют только одно слово, и если есть строки, содержащие несколько слов и точно повторяющиеся, они будут заменены только одной строкой,

\w+\s*\n|([\w ]+)\n*(\1\n+)*

Здесь первая часть в чередовании \w+\s*\n соответствует строке из одного слова и заменяется пустой строкой, а второе чередование ([\w ]+)\n*(\1\n+)* захватывает строку в группе 1, а затем (\1\n+)* использует любую повторяющуюся строку и, наконец, заменяется группой 2, которая является одна и та же строка повторяется несколько раз.

Демо

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