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

regexp_extract_all

Описание

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

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

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

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

Синтаксис

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