Объединение поиска по шаблону в MS Word VBA - PullRequest
0 голосов
/ 01 октября 2019

Есть ли способ объединить две строки поиска в одну? В приведенном ниже примере ... закомментированный <[AZ] {1,} [az] [AZ] {2,}> с существующим ([AZ] {2,})

Текстпри поиске будут использоваться сокращения верхнего и нижнего регистра / смешанного типа: План устойчивого развития ( SDP ) с 2018 по 2030 годы, поскольку они применяются к пяти ключевым исследованиям случаев и потребностей: 1) Здравоохранение 2) Образование 3) Подростки 4) Репродуктивное здоровье и здоровье матери и новорожденного ( RMNH ) и 5) санитария и гигиена воды ( WASH ) .... Министерство финансов и планирования ( МФ ))

Я пытаюсь избежать обучения с помощью RegEx!

With MyRange.Find

'<[A-Z]{1,}[a-z][A-Z]{2,}>

        .Text = "\([A-Z]{2,}\)"
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindStop
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchAllWordForms = False
        .MatchSoundsLike = False
        .MatchWildcards = True
        .Execute

While .Execute

1 Ответ

0 голосов
/ 01 октября 2019

Простой ответ - команда MS Word Find не поддерживает несколько шаблонов подстановочных знаков в одном поиске с логическими операторами. Тем не менее, вы можете сгруппировать несколько шаблонов, используя круглые скобки «()», но он найдет полный шаблон, реализуя логику «И» в таком случае. Для более гибкого поиска вы должны использовать Regex с VBA в этом случае. Вы можете перейти на официальный сайт Microsoft для получения информации о поддерживаемых функциях Wildcard

...