Функция РЕГВ_НАЙТИ
Функция РЕГВ_НАЙТИ находит в строке все соответствия регулярному выражению и возвращает их список.
ФУНКЦИЯ РЕГВ_РЕЗУЛЬТАТ: РЕГВ_НАЙТИ(СТРОКА: стр; СТРОКА: рег_выр; СТРОКА: опции = "")
Параметры
- стр
- Строка, в которой выполняется поиск.
- рег_выр
- Регулярное выражение.
- опции
- Необязательный параметр. Опции поиска:
"i" – соответствие вычисляется без чувствительности к регистру символов.
Возвращаемое значение
Список найденных соответствий. В случае ошибки возвращается пустой список.
При ошибке синтаксиса регулярного выражения в отладку выводится диагностическое сообщение.
Существует несколько различных вариантов синтаксиса регулярных выражений. В настоящей реализации используется синтаксис Modified ECMAScript. Детали см. Modified ECMAScript regular expression grammar.
Пример 1
Поиск буквенных последовательностей, разделенных точкой:
ПЕРЕМ рез = РЕГВ_НАЙТИ("-- barbus.txt === pony.bmp:33", "([a-z]+)\.([a-z]+)") ЦИКЛ ИНДЕКС(соотв = рез[*]) ОТЛАДКА(соотв) КОНЕЦ_ЦИКЛА
Вывод:
РЕГВ_СООТВЕТСТВИЕ[стр="barbus.txt",поз=4,длина=10] РЕГВ_СООТВЕТСТВИЕ[стр="pony.bmp",поз=22,длина=8]
Пример 2
Поиск без чувствительности к регистру символов слова "скорость" отделенного символом табуляции от нескольких цифр:
ПЕРЕМ текст = "Скорость:^t66^s" + "Масса:^t35^s" + "Скорость:^t1378^s" + "Масса:^t32^s" + "Скорость:^t400^s" + "Масса:^t30^s"; ПЕРЕМ рез = РЕГВ_НАЙТИ(текст, "(СКОРОСТЬ:\t\d*)", "i") ЦИКЛ ИНДЕКС(соотв = рез[*]) ОТЛАДКА(соотв) КОНЕЦ_ЦИКЛА
Вывод:
РЕГВ_СООТВЕТСТВИЕ[стр="Скорость:^t66",поз=1,длина=12] РЕГВ_СООТВЕТСТВИЕ[стр="Скорость:^t1378",поз=24,длина=14] РЕГВ_СООТВЕТСТВИЕ[стр="Скорость:^t400",поз=49,длина=13]