Перейти к основному содержимому
Версия: 2.0.x

regexp_extract_all

Извлекает все подстроки из целевой строки (str), которые соответствуют шаблону регулярного выражения (pattern) и соответствуют индексу группы регулярного выражения, указанному в pos. Эта функция возвращает массив.

В регулярных выражениях группы заключаются в круглые скобки () и нумеруются путём подсчёта их открывающих скобок слева направо, начиная с 1. Например, ([[:lower:]]+)C([[:lower:]]+) соответствует строчным буквам слева или справа от заглавной буквы C. Этот шаблон содержит две группы: ([[:lower:]]+) слева от C — первая группа, а ([[:lower:]]+) справа от C — вторая группа.

Шаблон должен полностью соответствовать некоторым частям str. Если совпадения не найдены, возвращается пустая строка.

Эта функция поддерживается начиная с версии v1.5.2.

Синтаксис

ARRAY<VARCHAR> regexp_extract_all(VARCHAR str, VARCHAR pattern, BIGINT pos)

Параметры

  • str: строка для сопоставления.

  • pattern: шаблон регулярного выражения, используемый для сопоставления подстрок.

  • pos: pattern может содержать несколько групп. pos указывает, какую группу регулярного выражения извлекать.

Возвращаемое значение

Возвращает ARRAY, состоящий из элементов VARCHAR.

Примеры

-- Вернуть все буквы, соответствующие группе 1 в шаблоне.
MySQL > SELECT regexp_extract_all('AbCdE', '([[:lower:]]+)C([[:lower:]]+)', 1);
+-------------------------------------------------------------------+
| regexp_extract_all('AbCdE', '([[:lower:]]+)C([[:lower:]]+)', 1) |
+-------------------------------------------------------------------+
| ['b'] |
+-------------------------------------------------------------------+

-- Вернуть все буквы, соответствующие группе 2 в шаблоне.
MySQL > SELECT regexp_extract_all('AbCdExCeF', '([[:lower:]]+)C([[:lower:]]+)', 2);
+---------------------------------------------------------------------+
| regexp_extract_all('AbCdExCeF', '([[:lower:]]+)C([[:lower:]]+)', 2) |
+---------------------------------------------------------------------+
| ['d','e'] |
+---------------------------------------------------------------------+

Ключевые слова

REGEXP_EXTRACT_ALL,REGEXP,EXTRACT