Я начинающий, когда дело доходит до кодирования, и сейчас я выясняю, как использовать регулярные выражения.
Что я делаю, так это извлекаю данные из входящих писем в Outlook 2013. Я использую VBA + RegEx для извлечения нужных мне данных и их консолидации / переноса в рабочую таблицу Excel, но моя проблема с именами. Я могу выяснить, какой шаблон нужен, поскольку существует множество возможных структур имен.
Вот образец письма
ID: 123456
Name: Dela Peña, Juan Carlos
Department: Accounts
Shift: 10:00 - 18:00
Вот что я имею в своем VBA:
.pattern = "(Name[:]+\s*(\w*-\w*)?(\s\w*)?(\s\w*[.]?)?(\s\w*[.]?)?[,]?(\s\w*[.]?)?(\s\w*[.]?)?(\s\w*[.]?))"
А вот список возможных комбинаций имен / комбинаций, которые могут отображаться на входящих письмах:
- Фамилия, (Ma.) Имя (Jr.)
- Фамилия, (Ма.) Имя Фамилия
- Фамилия, (Ма.) Имя Имя Имя Имя
- фамилия-фамилия, (ма.) Имя Имя Имя Имя
- Lastname. Фамилия (младший), (Ма.) Имя Фамилия (младший)
- Last - * ame, (Ma.) Givenname Givenname Givenname - * Здесь все становится сложно, и я не могу найти способ вставить его в свой RegEx.