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