VBA разбирает строку в токены - PullRequest
1 голос
/ 03 апреля 2009

У меня есть строка с кучей многобуквенных кодов, и я хотел бы разобрать ее по этим кодам. Я не уверен, как заставить его смотреть более чем на один символ, чтобы определить, является ли он частью кода.

Моя строка выглядит так:

BBCTEEBOBBB

и я хочу разобрать эти случаи:

E BB Коннектикут BOB

Таким образом, результат должен быть выведен (или массив), который выглядит следующим образом:

BB Коннектикут Е Е ЛПП BB

1 Ответ

5 голосов
/ 03 апреля 2009

Я бы использовал регулярные выражения. В Инструменты | Ссылки , добавьте самую высокую версию библиотеки регулярных выражений Microsoft VBScript, доступную на вашем ПК (5.5 на моем). Тогда вы можете использовать такой код:

Sub main()
  Dim x, m
  Set x = myparser("BBCTEEBOBBB")
  For Each m In x
    Debug.Print m.Value
  Next
End Sub

Function myparser(string_to_parse)
  Dim splitter As New RegExp
  splitter.Pattern = "E|BB|CT|BOB"
  splitter.Global = True
  Set myparser = splitter.Execute(string_to_parse)
End Function

Функция myparser создает объект MatchCollection, к которому можно обращаться как в подпрограмме main. Выходными данными является список по порядку всех совпадений, найденных во входной строке. Вы должны быть в состоянии легко преобразовать это, чтобы сгенерировать массив или строку, разделенную пробелом.

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