Статьи из блога

Поиск и замена текста в цифровых данных

Игорь задал вопрос:

Есть документ microsoft word. в нем данные такого вида:

83 82.133.71.151:8080

48 82.133.71.152:8080

41 82.133.71.154:8080

как написать макрос или как-то иначе заменить данные на следующий вид:

82.133.71.151:8080

82.133.71.152:8080

82.133.71.154:8080

То есть удалить все данные до пробела вместе с пробелом.

Игорь, вы можете воспользоваться диалоговым окном "Найти и заменить" - «Ctrl+H». В поле "Найти" вставьте вот такое выражение: [0-9]{2}^32. Поле "Заменить" оставьте пустым. Отметьте флажком параметр "Подстановочные знаки". Нажмите кнопку "Заменить все".

twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru ya.ru rutvit.ru myspace.com technorati.com digg.com friendfeed.com pikabu.ru blogger.com liveinternet.ru livejournal.ru memori.ru google.com bobrdobr.ru mister-wong.ru yahoo.com yandex.ru del.icio.us

Еще записи по вопросам использования Microsoft Word:

Комментариев: 7

  1. aka_SmILe
    03.05.2009 в 08:30 | #1

    можно было в принципе воспользоваться блочным выделением через ctrl+f8

    Антон прокомментируйте [0-9]{2}^32

    что значит ^32

    п.с. где можно почитать на русском по таким регулярным выражениям, очень интересная штука.

  2. 03.05.2009 в 08:41 | #2

    Это значит буквально следующее: ищем цифры в диапазоне от 0 до 9 в количестве 2 цифр идущих подряд (не более), а следом за ними идет символ пробела.

    Цифры с галочкой перед ними это код пробела.

    О регулярных выражениях можно почитать в статье С.Хозяинова по ссылке.

  3. Iwan Petrov
    17.05.2009 в 11:13 | #3

    Скажите, пожалуйста, как создать макрос, который не убирает первые две цифры (как в этом примере), а после них вставляет символ /(например). Т.е.

    83 82.133.71.151:8080

    48 82.133.71.152:8080

    41 82.133.71.154:8080

    заменяет на

    83/82.133.71.151:8080

    48/82.133.71.152:8080

    41/82.133.71.154:8080

    Спасибо.

  4. 17.05.2009 в 14:51 | #4

    Иван, макрос не нужен.

    Тут нужно в поле "Найти" вставить такое выражение:

    ([0-9]{2})^32([0-9]{2}.)

    А вот в поле "Заменить" вставить другое выражение:

    \1/\2

    Таким образом, мы будем заменять пробел между двумя парами цифр на слэш.

  5. Iwan Petrov
    17.05.2009 в 20:44 | #5

    Антон, спасибо. Замена работает. Еще аналогичный вопрос: нет пробела после каждых двух чисел каждого рядка. Надо вставить слэш после каждых двух чисел каждого рядка. Т.е. заменить

    123456

    234567

    345678 на

    12/34/56

    23/45/67

    34/56/78. Как будет выглядеть замена? Спасибо.

  6. 18.05.2009 в 08:26 | #6

    Есть (у меня) два варианта решения данной проблемы.

    Вариант 1.

         Строка поиска: [0-9]{2}

         Строка замены: ^&/

         Включить подстановочные знаки.

    После этого провести еще такую замену, чтобы удалить последний слеш в конце строки:

         Строка поиска: /^0013

         Строка замены: ^0013

         Включить подстановочные знаки.

    Вариант 2. Если цифр всегда только 6.

         Строка поиска: ([0-9]{2})([0-9]{2})([0-9]{2})

         Строка замены: \1/\2/\3

         Включить подстановочные знаки.

  7. Игорь
    03.06.2013 в 17:09 | #7

    нажимаем Alt и курсором выделяем область для удаления и Delete

Оставьте комментарий!

(обязательно)

^ Наверх