1

Тема: Выделение в тексте цветом одинаковых повторяющихся одна за другой фраз

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

Пример:

120
00:07:46,400 --> 00:07:47,899
OF FILM THAT I'VE--PERSONALLY
I HOLD ONTO AND IT'S LIKE     (КРАСНЫЙ)

121
00:07:47,901 --> 00:07:49,901
I HOLD ONTO AND IT'S LIKE     (КРАСНЫЙ)    УДАЛИТЬ
A COMFORTING THING TO ME.     (СИНИЙ )    УДАЛИТЬ

122
00:07:49,903 --> 00:07:53,338
A COMFORTING THING TO ME.     (СИНИЙ )
AND IT FEELS MORE TANGIBLE.     (ЗЕЛЁНЫЙ)

123
00:07:53,340 --> 00:07:54,639
AND IT FEELS MORE TANGIBLE.     (ЗЕЛЁНЫЙ)    УДАЛИТЬ
THE HALIDES OPEN UP AND FLIP     (КРАСНЫЙ)    УДАЛИТЬ

124
00:07:54,641 --> 00:07:55,841
THE HALIDES OPEN UP AND FLIP     (КРАСНЫЙ)
THEMSELVES AND GIVE A SORT OF

Post's attachments

Повтор.doc 26 Кб, 9 скачиваний с 2013-05-23 

You don't have the permssions to download the attachments of this post.

2

Re: Выделение в тексте цветом одинаковых повторяющихся одна за другой фраз

примерно так(удаление заблокировано)

Sub a_01_pr_h130523_fr30()
''''''''''''''''''''''''''''''''''''''''''
''удаление повторов
''и группы с повтором
''''''''''''''''''''''''''''''''''''''''''
Dim pr As Paragraph, S2A, s2k, ss, j3
Selection.WholeStory
Selection.Font.Color = wdColorBlack

j1 = 0
j1a = Word.ActiveDocument.Paragraphs.Count
j3 = 0
ss = "`"
Do While j1 < j1a
j1 = j1 + 1
Set pr = Word.ActiveDocument.Paragraphs(j1)
S1 = Trim(pr.Range.Text)
j2 = InStr(S1, Chr(9))
If j2 > 1 Then
''отсечка комментов
S1 = Mid(S1, 1, j2 - 1)
End If
If S1 < "999999" Or Len(S1) < 3 Then
j3 = 0
GoTo mread
End If

Debug.Print j3, j1, S1;

If j3 = 0 Then
   S1 = "`" & S1
   j2 = InStr(ss, S1)
   If j2 > 0 Then
     pr.Range.Font.Color = wdColorRed
     j3 = 1
   Else
     ss = ss & S1
   End If
Else
  pr.Range.Font.Color = wdColorRed
End If
mread:
Loop
Do While j1a > 0
Set pr = Word.ActiveDocument.Paragraphs(j1a)
If pr.Range.Font.Color = wdColorRed Then
''Блокировка удаления
'Word.ActiveDocument.Paragraphs(j1a).Range.Delete
End If
j1a = j1a - 1
Loop
Debug.Print Now

End Sub

3

Re: Выделение в тексте цветом одинаковых повторяющихся одна за другой фраз

Включите подстановочные знаки и в поле Найти введите:
(^13[!^13]{1;}^13)(*\1)([!^13]{1;}^13)(*\3)
В поле Заменить введите:
^13\4
Для полного успеха, надо запустить пару раз.

Макросы под заказ и готовый пакет - mtdmacro.ru

4

Re: Выделение в тексте цветом одинаковых повторяющихся одна за другой фраз

как найти в тексте одинаковые фрагменты

5

Re: Выделение в тексте цветом одинаковых повторяющихся одна за другой фраз

Геннадий Свинкин пишет:

как найти в тексте одинаковые фрагменты

Два повторения текста "что ищем":
(что ищем)*\1

Три повторения текста "что ищем":
(что ищем)*\1*\1

Два повторения любого слова:
(<*>)*\1

Четыре повторения любого слова кириллицы:
(<[А-ЯЁа-яё]@>)*\1*\1*\1

Все это ищем с вкл опцией "Подстановочные знаки".

Макросы под заказ и готовый пакет - mtdmacro.ru