1. Создание объекта.
RegExp = Новый COMОбъект("VBScript.RegExp");
2. Свойства.
| Свойство | Тип данных | Описание | Значение по умолчанию | Пример |
|---|---|---|---|---|
| Global | Булево | Проверять строку до первого соответствия шаблону (Ложь) или по всему тексту (Истина) | Ложь |
|
| IgnoreCase | Булево | Учитывать (Ложь) или не учитывать (Истина) регистр символов | Ложь |
|
| MultiLine | Булево | Многострочный (Истина) или однострочный (Ложь) режим | Ложь |
|
| Pattern | Строка | Используемый шаблон - образец текста, который состоит из обычных символов и/или специальных метасимволов |
|
3. Методы.
| Метод | Описание | Возвращаемое значение | Пример |
|---|---|---|---|
| Replace(Строка, Подстрока) | Замена вхождений, соответствующих шаблону (свойство Pattern), в строке-оригинале на указанную подстроку | Изменённая строка |
|
| Test(Строка) | Проверка соответствия шаблону | Булево |
|
| Execute(Строка) | Поиск соответствующих шаблону вхождений в строке-оригинале | Коллекция найденных подстрок в виде агрегатного объекта |
|
4. Метасимволы.
| Символы | Описание | Пример |
|---|---|---|
| \ | Показывает, что следующий символ является спецсимволом. Последовательность "\\" соответствует "\", а последовательность "\(" соответствует "(". |
|
| ^ | Определяет начало входной строки. Если установлено свойство Multiline, определяет также позицию сразу после "\n" (новая строка) и "\r" (возврат каретки). |
|
| $ | Определяет конец входной строки. Если установлено свойство Multiline, определяет также позицию непосредственно перед "\n" (новая строка) и "\r" (возврат каретки). |
|
| * | Определяет ни одного или несколько символов, стоящих перед ним. Эквивалентно {0,}. |
|
| + | Определяет один или несколько символов, стоящих перед ним. Эквивалентно {1,}. |
|
| ? | Определяет ни одного или один символ, стоящий перед ним. Эквивалентно {0,1}. Если этот метасимвол идёт непосредственно за конструкциями (*, +, ?, {n}, {n,}, {n,m}), это приводит к некоторому изменению алгоритма поиска по заданному шаблону, что проиллюстрировано примером ниже. |
|
| {n} | Определяет точное количество символов, стоящих перед ним. "n" - неотрицательное целое число. |
|
| {n,} | Определяет минимальное количество символов, стоящих перед ним. "n" - неотрицательное целое число. "{0,}" эквивалентно "*", а "{1,}" эквивалентно "+". |
|
| {n,m} | Определяет количество символов, стоящих перед ним (от - до). "n" и "m" - неотрицательные целые числа, причём n <= m. "{0,1}" эквивалентно "?". |
|
| . | Определяет любой символ, кроме "\n" (новая строка). Чтобы определить любой символ, включая "\n", следует использовать "[\s\S]". |
|
| (шаблон) | Фиксирует подбор по шаблону в коллекции SubMatches. Чтобы определить символы "(" и ")", следует использовать "\(" и "\)". |
|
| (?:шаблон) | Полезно для комбинирования частей шаблона с помощью символа "|" ("или"). Например, "госпо(?:дин|жа)" короче, чем "господин|госпожа". НЕ фиксирует подбор в коллекции SubMatches. |
|
| (?=шаблон) | "Windows(?=95|98)" подберёт подстроку "Windows" в строке "Windows95", но не в строке "WindowsNT". Дальнейший подбор начинается немедленно, а не после символов, входящих в скобки. НЕ фиксирует подбор в коллекции SubMatches. |
|
| (?!шаблон) | "Windows(?!95|98)" подберёт подстроку "Windows" в строке "WindowsNT", но не в строке "Windows95". В остальном - полностью аналогично "(?=шаблон)". |
|
| x|y | Условие "или". "вз|перевод" подберёт "вз" и "перевод". "(вз|пере)вод" подберёт "взвод" и "перевод". |
|
| [abc] | Набор символов. Находит любой из указанных символов. |
|
| [^abc] | Исключающий набор символов. Находит любой из неуказанных символов. |
|
| [a-z] | Диапазон символов. Находит любой символ из диапазона. |
|
| [^a-z] | Исключающий диапазон символов. Находит любой символ, не входящий в диапазон. |
|
| \b \B | \b - Граница слова, т.е. позиция между концом слова и пробелом. \B - НЕ граница слова. |
|
| \d \D | \d - цифра. Эквивалентно [0-9]. \D - НЕ цифра. Эквивалентно [^0-9]. |
|
| \w \W | \w - любой символ слова, включая символ подчёркивания. Эквивалентно [A-Za-z0-9_]. \W - обратно "\w". Эквивалентно [^A-Za-z0-9_]. |
|
| \s \S | \s - пробельный символ. Эквивалентно [\f\n\r\t\v]. \S - непробельный символ. Эквивалентно [^\f\n\r\t\v]. |
|
| \cx | Управляющий символ. Параметр "х" лежит в диапазоне A-Z или a-z. Например, "\cM" определяет Control-M или символ возврата каретки, "\cJ" - новая строка, "\cL" - новая страница, "\cI" - символ табуляции, "\cK" - символ вертикальной табуляции. |
|
| \f | Символ новой страницы. Эквивалент "\x0c" и "\cL". | |
| \n | Символ новой строки. Эквивалент "\x0a" и "\cJ". |
|
| \r | Символ возврата каретки. Эквивалент "\x0d" и "\cM". |
|
| \t | Символ табуляции. Эквивалент "\x09" и "\cI". |
|
| \v | Символ вертикальной табуляции. Эквивалент "\x0b" и "\cK". |
|
| \xn | Шестнадцатеричный ASCII-код символа. Должен содержать ровно два символа. |
|
| \num | Ссылка на предыдущие зафиксированные (найденные) подстроки-соответствия шаблону (SubMatches). "num" - положительное целое число, номер соответствия в коллекции SubMatches; отсчёт с единицы. Например, "(.)\1" определяет два идентичных символа, следующих друг за другом. |
|
| \un | Определяет Unicode-символ по его шестнадцатеричному коду. "n" - четырёхзначный шестнадцатеричный код. |
|
