VBA Excel. Регулярні вирази (об'єкти, властивості, методи)

  1. Створення об'єкта RegExp
  2. пізня прив'язка
  3. Властивості і методи об'єкта RegExp
  4. Методи об'єкта RegExp
  5. Властивості об'єкта Matches Collection
  6. Властивості об'єкта Match
  7. Символи і метасимволу

Регулярні вирази в VBA Excel. Об'єкти RegExp, Match, Matches Collection і їх властивості. Символи і метасимволу. Створення об'єкта RegExp з ранньої, пізньої прив'язкою і його методи.

Регулярні вирази (по Вікіпедії - формальна мова пошуку і здійснення маніпуляцій з підрядками в тексті), необхідні для обробки текстів за допомогою шаблонів, що складаються з символів і метасимволов, і представлені об'єктом RegExp.

У VBA Excel для роботи з регулярними виразами використовується бібліотека «Microsoft VBScript Regular Expression».

  1. Створення об'єкта RegExp
  2. Властивості і методи об'єкта RegExp
  3. Властивості об'єктів Match і Matches Collection
  4. Символи і метасимволу

Створення об'єкта RegExp

рання прив'язка

Зазвичай рекомендується використовувати об'єкти з ранньої прив'язкою, так як у них вище швидкодія, а також при написанні і редагуванні коду доступні підказки у вигляді листа властивостей-методів, що з'являється автоматично або що викликається, при необхідності, натисніть сполучення клавіш Ctrl + Пробіл.

Раннє зв'язування полягає в привласненні нового примірника об'єкта RegExp змінної, вже оголошеної, як змінна певного типу (в нашому випадку, як RegExp).

Для здійснення ранньої прив'язки необхідно підключити до проекту VBA посилання на бібліотеку «Microsoft VBScript Regular Expression», для чого в редакторі VBA вибираємо Tools - References ...

У вікні «References» знаходимо рядок «Microsoft VBScript Regular Expression 5.5» (якщо у вас її немає, то рядок «Microsoft VBScript Regular Expression 1.0»), відзначаємо її галочкою і натискаємо «ОК».

Готово - посилання додана.

Створення об'єкта RegExp з ранньої прив'язкою:

'Варіант 1 Dim myRegExp As RegExp Set myRegExp = New RegExp' ------------------------- 'Варіант 2 Dim myRegExp As New RegExp

пізня прив'язка

Пізніше зв'язування полягає в привласненні нового примірника об'єкта RegExp змінної, оголошеної як Object, за допомогою функції CreateObject.

Створення об'єкта RegExp з пізньої прив'язкою:

Dim myRegExp As Object Set myRegExp = CreateObject ( "VBScript.RegExp")

Властивості і методи об'єкта RegExp

Властивості об'єкта RegExp

Властивість Опис Значення
за замовчуванням Global Визначає тривалість пошуку:
False - до першого збігу
True - по всьому тексту False IgnoreCase Визначає чутливість до регістру символів:
False - враховувати регістр
True - не враховувати регістр False Multiline Визначає структуру об'єкта:
False - однорядковий
True - багаторядковий False Pattern Рядок, яка використовується як шаблон Порожній рядок

Властивості об'єкта RegExp доступні для читання і запису.

Методи об'єкта RegExp

Метод Синтаксис Опис Execute Execute (myStr)
myStr - рядок для пошуку Повертає колекцію знайдених за шаблоном подстрок у вигляді агрегатного об'єкта Replace Replace (myStr, myRep)
myStr - рядок для пошуку
myRep - рядок для заміни Повертає рядок, в якій знайдені за шаблоном входження в заданій стрічці замінені на зазначену подстроку. Test Test (myText)
myText - рядок для перевірки Повертає логічне значення як результат перевірки відповідності рядка шаблоном

Властивості об'єктів Match і Matches Collection

Метод Execute об'єкта RegExp повертає агрегатний об'єкт Matches Collection, який містить колекцію об'єктів Match, що представляють всі збіги, знайдені механізмом регулярних виразів, в тому порядку, в якому вони присутні в заданій стрічці. Якщо збігів немає, метод повертає об'єкт Matches Collection без членів.

Властивості об'єкта Matches Collection

Властивість Опис Count Кількість об'єктів Match, що містяться в об'єкті Matches Collection Item Індекс члена колекції від нуля до значення властивості Count мінус 1

Властивості об'єкта Matches Collection доступні тільки для читання.

Властивості об'єкта Match

Властивість Опис FirstIndex Позиція в заданій стрічці, де сталося збіг, причому перша позиція в рядку дорівнює нулю Length Довжина збіглася подстроки Value Знайдена підрядок (є властивістю за замовчуванням)

Властивості об'єкта Match доступні тільки для читання.

Символи і метасимволу

Всі знаки, які використовуються для складання шаблонів, зазвичай ділять на символи і метасимволу. Символи - це знаки, які в шаблонах позначають самі себе, а метасимволу (спецсимволи) - знаки, що мають інше значення. Метасимволи можуть використовуватися як окремо, так і в поєднанні з іншими символами і спецсимволами.
Таблиця основних метасимволов і їх поєднань з іншими символами

метасимвол
(поєднання символів) Значення \ Після цього знака метасимвол позначає сам себе, а деякі символи набувають іншого значення ^ Початок рядка $ Кінець рядка? Жодного або один будь-який символ * Жодного або декілька довільних символів + Один або декілька довільних символів. Будь-який символ, крім знака "новий рядок" - визначає інтервал символів | Знак "або" {n} Точна кількість символів, що стоять перед {n} {n, m} Кількість від n до m символів, що стоять перед {n, m} [abc] Будь-який із зазначених символів [^ abc] Будь-який з невказаних символів [az] Будь-який символ з діапазону [^ az] Будь-який символ, який не входить в діапазон \ b кінець слова \ B чи не кінець слова \ d цифра \ D чи не цифра \ w Будь-яка буква, цифра або знак підкреслення \ W Забороняється буква, що не цифра і не знак підкреслення \ s пропуск \ S Чи не пробіл

Не включені рідко використовуються поєднання, ознайомитися з якими можна в довідкової системі MSDN . А приклади використання метасимволов в шаблонах дуже добре представлені на цьому ресурсі в розділі 4. Метасимволи.