Руководство разработчика

Функция РЕГВ_НАЙТИ

Функция РЕГВ_НАЙТИ находит в строке все соответствия регулярному выражению и возвращает их список.

ФУНКЦИЯ РЕГВ_РЕЗУЛЬТАТ: РЕГВ_НАЙТИ(СТРОКА: стр;
                                   СТРОКА: рег_выр;
                                   СТРОКА: опции = "")

Параметры

стр
Строка, в которой выполняется поиск.
рег_выр
Регулярное выражение.
опции
Необязательный параметр. Опции поиска:
"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]

См. также: