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

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

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

Рубрика: Советы и cекреты, Вопрос-Ответ
Метки:
Суббота, 2 мая 2009 г.
Просмотров: 2578
Подписаться на комментарии по RSS
Версия для печати

[Ссылки на статью]

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

Есть документ 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 Вконтакте Google Buzz google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru]]>

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

  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

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

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

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

^ Наверх