1

Тема: простой скрипт

Уважаемые гуру, помогите, пожалуйста, со скриптом.
Задача следующая.
Имеется колонка из цифр и текста:

12:12 a
20 b
20:52 c
55 d

Необходимо, чтобы скрипт для строк с двумя цифрами вставлял вначале строки две первые цифры и двоеточие из предыдущей строки.
То есть должно получаться так:

12:12 a
12:20 b
20:52 c
20:55 d

2

Re: простой скрипт

Попробуйте поиск и замену:
Найти: ([0-9]{2}:)([0-9]{2} [a-z]^0013)([0-9]{2} [a-z])
Заменить на: \1\2\1\3
Подстановочные знаки включены.
Если подойдёт, то в виде макроса, это будет так:

Sub Macro1()
  With  ActiveDocument.Range.Find
    .Text = "([0-9]{2}:)([0-9]{2} [a-z]^0013)([0-9]{2} [a-z])"
    .Replacement.Text = "\1\2\1\3"
    .MatchWildCards = True
    .Execute Replace:=wdReplaceAll
  End With
End Sub
Лучше день потерять — потом за пять минут долететь!

3

Re: простой скрипт

Какой класс! Работает!

Одно уточнение.
Как задать вместо одиночных символов [a-z] вообще любой набор символов любой длины включая пробелы? То есть все до знака конца строки.

PS

Пример:

20:12 абв 123
13 абв 123

Отредактировано sylvio (29.03.2010 23:47:38)

4

Re: простой скрипт

Звёздочка (*). Тогда выражение должно быть таким:
([0-9]{2}:)([0-9]{2}*^0013)([0-9]{2}*^0013)

Лучше день потерять — потом за пять минут долететь!

5

Re: простой скрипт

Спасибо.
Проверил на следующем фрагменте:

20:12 a 123
14 c 123
15 d 123
22:12 e 123
25 f 123

Все хорошо, только за раз макрос изменяет 2 и 5 строки, а 3 остается без изменений, но при повторном запуске меняется и 3 строка.
Каким образом задать, например, 5х повторений макроса?
Вот если бы макрос повторял себя пока есть фрагменты знак абзаца-цифра-цифра-пробел, но, наверное, это сложно...

Отредактировано sylvio (30.03.2010 13:37:14)