Перейти к основному содержимому Перейти к дополнительному содержимому

IndexRegExGroup — функция скриптa и диаграммы

IndexRegExGroup() выполняет поиск во входной строке и возвращает начальную позицию n-го вхождения указанного шаблона составного регулярного выражения. Дополнительный третий аргумент count определяет значение n (1, если опущен). Позиции в строке нумеруются слева направо от 1 и далее. Если совпадение не найдено, функция возвращает 0.

Эта функция выполняет операции с регулярными выражениями, чувствительные к регистру. В качестве альтернативы можно использовать вариант IndexRegExGroupI() для выполнения операций с регулярными выражениями без учета регистра.

Синтаксис:  

IndexRegExGroup (text, regex, group [, count])

Возвращаемые типы данных: целое

Аргументы
Аргумент Описание
text Текст входной строки, в которой требуется выполнить поиск регулярного выражения.
regex Регулярное выражение, которое будет использоваться для поиска входной строки.
group

Номер группы в случае составного регулярного выражения.

Значение group=0 возвращает индекс всего регулярного выражения. Однако если регулярное выражение должно возвращать только индекс всего совпадения, используйте вместо этого функцию IndexRegEx().

Можно указать отрицательное значение group для поиска совпадений справа налево.

count

Номер совпадения. Это полезно, когда в тексте может быть найдено несколько совпадений с регулярным выражением. Например, укажите значение 4, чтобы найти позицию четвертого совпадения.

Данный аргумент является необязательным. Если значение на задано, по умолчанию используется 1. Можно указать отрицательное значение для поиска совпадений справа налево.

Примеры функции
Пример Результат
IndexRegExGroup('abc123','([a-z])([0-9]+)',0) Возвращает 3 (начальную позицию полного регулярного выражения).
IndexRegExGroup('abc123','([a-z])([0-9]+)',1) Возвращает 3 (начальная позиция первой группы).
IndexRegExGroup('abc123','([a-z])([0-9]+)',2) Возвращает 4 (начальная позиция второй группы). Во входном шаблоне регулярного выражения строка ([0-9]+) соответствует второй группе.
IndexRegExGroup('ABC123','([a-z])([0-9]+)',1) Возвращает 0, поскольку IndexRegExGroup() учитывает регистр.
IndexRegExGroupI('ABC123','([a-z])([0-9]+)',1) Возвращает 3. Используется вариант функции IndexRegExI() без учета регистра.

Когда это следует использовать

Эта функция может использоваться в следующих случаях:

  • Определение, где в больших объемах текста встречаются специфические текстовые шаблоны. Например, может потребоваться узнать, где домен адреса электронной почты используется в серии длинных сообщений электронной почты.

  • Функция IndexRegExGroup() особенно полезна для расширенной обработки данных и обычно используется на первом этапе более длительного и сложного преобразования. Обычно проще решать задачи с помощью других функций regex, таких как ExtractRegExGroup(), MatchRegEx() и CountRegEx(), но могут быть случаи, когда IndexRegExGroup() предлагает решения, которые не могут обеспечить эти функции.

Пример 1: скрипт загрузки для поиска позиций компонентов ISBN

Пример 2: выражение диаграммы для поиска позиций URL (со сравнением IndexRegEx())

Помогла ли вам эта страница?

Если вы обнаружили какую-либо проблему на этой странице и с ее содержанием — будь то опечатка, пропущенный шаг или техническая ошибка, сообщите нам об этом, чтобы мы смогли ее исправить!