Нахождение всех возможных сокращений - PullRequest
0 голосов
/ 11 января 2019

У меня есть сценарий, использующий VBA для просмотра документа Word, чтобы найти все слова, которые могут быть аббревиатурой, но я обнаружил, что мой шаблон regEx не находит их все.

Шаблон RegEx, который я использую: "([AZ] {2,}) (- ([AZ] {2,}) [A-Za-z0-9] )"

С этим шаблоном я могу найти

AA
AAA
AA-BB
AA-BBB
AAA-BB
AAA-BBB
AAA-1234
AAA-BBB-1234

но эти слова не находит

B2B
B2B-1234
B2B-A1A-1234

Ожидание совпадения слов должно заключаться в том, что первый символ является буквой и должен содержать как минимум две заглавные буквы и как минимум одну цифру. Кроме того, если в слове есть тире, то символы перед тире должны соответствовать ожиданию совпадения слова.

Есть ли способ использовать приведенный выше шаблон regEx для включения в него буквенно-цифро-буквенных аббревиатур?

1 Ответ

0 голосов
/ 11 января 2019

Милко, добро пожаловать в StackOverflow. Я думаю, что следующее регулярное выражение будет работать для вас:

([A-Z][A-Z0-9]+)(-[A-Z0-9]{2,})*

Это регулярное выражение содержит цифры и необязательное число терминов, написанных через дефис, и соответствует каждому из указанных выше случаев. Я проверил это на regextesteronline.com - я предполагаю, что регулярные выражения VB.net такие же, как VBA, какими они и должны быть, по крайней мере для основных регулярных выражений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...