![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 19.05.2013
Сообщений: 24
|
![]()
Подскажите, пожалуйста, можно ли с помощью "VBScript.RegExp" выполнить такую замену: "(стр1)(стр2)" на "(стр2)(стр1)"? Если не ошибаюсь обычно для этого используются в строке поиска круглые скобки а в строке замены "\n", но у меня почему-то не получается.
ЗарСпасБол! |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 24.12.2012
Сообщений: 776
|
![]()
Vadim39, а почему вы решили использовать библиотеку "Microsoft VBScript Regular Expressions", а не VBA-Word-команду "Find"?
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 19.05.2013
Сообщений: 24
|
![]()
Скрипт, главным образом потому, что в с помощью подстановочных знаков Word-а я могу искать "одно или более предыдущих входений", но не могу "ноль или более". А кроме того, я не знаю как использовать Find для строчной переменной. Если я правильно понимаю, эта команда может быть применена лишь к содержимому редактируемого документа, чего в моем случае хотелось бы избежать.
|
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 24.12.2012
Сообщений: 776
|
![]()
Vadim39, а какой у вас искомый текст, и на какой текст нужно заменить? Вот так?
До замены: "(стр1)(стр2)" После замены: "(стр2)(стр1)"? Или вот так? До замены: стр1стр2 После замены: стр2стр1 |
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 19.05.2013
Сообщений: 24
|
![]()
Не суть важно, я имел в виду самый простой пример когда искомое выражение можно подставить в строку замены. Скажем, если нужно поменять местами буквы и цифры "абв123" на "123абв" В word-е я бы написал так:
в строке поиска: "([А-я]@)([0-9]@)", а в строке замены "\2\1". Нашел, кажется: функцию возвращения шаблона в строке замены выполняет "$n", где n - это номер скобок в строке поиска, начиная с 1. Осталось еще понять как вернуть весь найденный текст - то что в ворде обозначается так: "^&", ну и для полноты картины, как указать в строке поиска начало и конец слова, а также, узнать, возможно ли получить число замен, если ".Global = True". Последний раз редактировалось Vadim39; 29.05.2013 в 02:52. |
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 24.12.2012
Сообщений: 776
|
![]()
Vadim39, не понятно, какие у вас остались вопросы, сделайте ваши вопросы в виде списка с порядковыми номерами.
|
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 29.09.2008
Сообщений: 378
|
![]()
По-простому будет так:
Код:
http://msdn.microsoft.com/en-us/library/ms974570.aspx
Макросы на заказ и готовый пакет - http://mtdmacro.ru/
|
![]() |
![]() |
![]() |
#8 | |
Пользователь
Регистрация: 19.05.2013
Сообщений: 24
|
![]() Цитата:
1. Возможно ли в паттерне указать начало слова (конец слова, если не ошибаюсь, "\b"). 2. Возможно ли в строке замены вернуть весь найденный текст (то, что в Word делается с помощью "^&"). 3. Есть ли параметр, возвращающий число найденных вхождений/замен. Последний раз редактировалось Vadim39; 29.05.2013 в 18:30. |
|
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 29.09.2008
Сообщений: 378
|
![]()
Еще учтите, что буквами в RegExp считается только латиница (A-Za-z). Остальное, в том числе кириллица, - это просто знаки для параметров \b \B.
Макросы на заказ и готовый пакет - http://mtdmacro.ru/
Последний раз редактировалось Вождь; 29.05.2013 в 19:12. |
![]() |
![]() |
![]() |
#10 | |
Форумчанин
Регистрация: 24.12.2012
Сообщений: 776
|
![]() Цитата:
Код:
Последний раз редактировалось Скрипт; 29.05.2013 в 19:32. |
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Создать класс "Фигура", от него наследованием создать 3 класса ("треугольник", "четырехугольник", "окружность") | funnyy | Помощь студентам | 3 | 17.10.2012 17:40 |
Вывести название соответствующей карты вида "шестерка бубен", "дама червей","туз треф" и т.п. | воваава | Помощь студентам | 3 | 01.12.2011 12:50 |
Visual Basic, использование операторов "for..next" и "if.. end if" | Dieza | Помощь студентам | 0 | 27.10.2010 20:46 |
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" | aleksei78 | Microsoft Office Excel | 13 | 25.08.2009 12:04 |