Как получить доступ к групповым совпадениям в поисковом макросе, который использует символы подстановки? - PullRequest
1 голос
/ 26 июля 2010

В макросе Word 2007, который находит текст с использованием подстановочных знаков, как мне получить доступ к значениям соответствия группы?

Например, если я запишу макрос, который ищет DATE: (<*>)^13, как мне найти значение группы совпадений (<*>)?

Спасибо,
Бен


Sub Search()
    Selection.Find.ClearFormatting
    With Selection.Find
        .Text = "DATE:    (<*>)^13"
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchAllWordForms = False
        .MatchSoundsLike = False
        .MatchWildcards = True
    End With
    Selection.Find.Execute
End Sub

Ответы [ 2 ]

1 голос
/ 27 июля 2010

Хороший вопрос, +1. Группы совпадений недоступны в Word, но вы можете немного обойтись. См. Последнюю запись в http://www.xtremevbtalk.com/archive/index.php/t-128215.html для решения.

0 голосов
/ 02 августа 2010

Не похоже, что функция поиска Word может сделать это. Однако, если я использую регулярные выражения VBScript, мой сценарий должен иметь возможность получать результаты сопоставления через возвращаемое значение метода Execute объекта vbscript.regexp: http://windowsdevcenter.com/pub/a/windows/excerpt/wdhks_1/index.html?page=4

...