Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Регулярные выражения в Word Добавлено: 05.10.07 20:54  

Автор вопроса:  ferico | Web-сайт: www.ricotech.ru
Кто-нибудь знает, как организовать в Word поиск с регулярными выражениями (как в Perl)?

Некотируемые варианты:
1) Опция поиска Wildcards - не рассматривается (слишком слаба).
2) Подключение модуля Microsoft VBScripts Regular Expressions 5.5 не подходит, т.к. здесь производится хоть и мощный, но поиск в текстовой строке. А нужно в Range DOC-документа, т.е. с сохранением форматирования.

В конечном счете вопрос сводится к вопросу - как с помощью VBScripts Regular Expressions 5.5 или др.средств сделать поиск внутри документа (а не строки)?

Ответить

  Ответы Всего ответов: 4  

Номер ответа: 1
Автор ответа:
 ferico



Вопросов: 2
Ответов: 31
 Web-сайт: www.ricotech.ru
 Профиль | | #1
Добавлено: 06.10.07 13:24
Ну что, видимо Word не дает возможности заменять текст?
Или никто не знает?

Ответить

Номер ответа: 2
Автор ответа:
 ferico



Вопросов: 2
Ответов: 31
 Web-сайт: www.ricotech.ru
 Профиль | | #2
Добавлено: 06.10.07 13:29
Думается, есть, конечно, хитрый способ - брать часть форматированного текста из документа, переводить в строку, делать Regexp-поиск, затем в самом тексте обычным способом находить найденные фрагменты и работать уже с ними.

Ответить

Номер ответа: 3
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #3 Добавлено: 06.10.07 16:12
Стандартная вёрдовская замена помойму допускает рег. выражения. Я правда незнаю насколько они мощные. Ну собственно осталось разобраться как пользоваться рег. выражениями в стандартной замене текста, и записать макрос...

Ответить

Номер ответа: 4
Автор ответа:
 ferico



Вопросов: 2
Ответов: 31
 Web-сайт: www.ricotech.ru
 Профиль | | #4
Добавлено: 06.10.07 17:23
В том то и дело, что стандартная Вордовская замена с рег.выражениями очень малофункциональна по сравнению с повсеместно принятыми рег. выражениями.

Например, она не дает вставлять в строке поиска \n. Это приходится делать конкатенацией строк и vbCr.

А также нет оператора количества символов "0 и более". Например, выражение {0;} не работает, работает только {1;}. В Perl это звездочка "*" или {0,}. В Word есть либо @ (от 1 и более символов), либо {0}, либо {1;}. И приходится делать поиск как минимум дважды для двух вариантов. А если строк тысячи?

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

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам