MariaDB - Регулярное выражение

Помимо сопоставления с образцом, доступного в предложениях LIKE, MariaDB предлагает сопоставление на основе регулярных выражений с помощью оператора REGEXP. Оператор выполняет сопоставление с образцом для строкового выражения на основе заданного образца.

MariaDB 10.0.5 представила регулярные выражения PCRE, которые значительно расширяют область сопоставления в таких областях, как рекурсивные шаблоны, утверждения с прогнозированием и многое другое.

Просмотрите использование стандартного синтаксиса оператора REGEXP, приведенного ниже -

SELECT column FROM table_name WHERE column REGEXP '[PATTERN]';

REGEXP возвращает 1 при совпадении с шаблоном или 0 при его отсутствии.

Возможен противоположный вариант в виде NOT REGEXP. MariaDB также предлагает синонимы для REGEXP и NOT REGEXP, RLIKE и NOT RLIKE, которые были созданы по соображениям совместимости.

Сравниваемый шаблон может быть буквальной строкой или чем-то еще, например столбцом таблицы. В строках используется escape-синтаксис C, поэтому удваивайте любые символы «\». REGEXP также нечувствителен к регистру, за исключением двоичных строк.

Таблица возможных шаблонов, которые можно использовать, приведена ниже -

Старший Нет Узор и описание
1

^

Соответствует началу строки.

2

$

Он соответствует концу строки.

3

.

Соответствует одному символу.

4

[...]

Соответствует любому символу в скобках.

5

[^...]

Соответствует любому символу, не указанному в скобках.

6

p1|p2|p3

Соответствует любому из шаблонов.

7

*

Соответствует 0 или более экземплярам предыдущего элемента.

8

+

Он соответствует одному или нескольким экземплярам предыдущего элемента.

9

{n}

Соответствует n экземплярам предыдущего элемента.

10

{m,n}

Он соответствует от m до n экземпляров предыдущего элемента.

Просмотрите примеры сопоставления с образцом, приведенные ниже -

Товары на букву «pr» -

SELECT name FROM product_tbl WHERE name REGEXP '^pr';

Продукты, заканчивающиеся на «na» -

SELECT name FROM product_tbl WHERE name REGEXP 'na$';

Произведения на гласную -

SELECT name FROM product_tbl WHERE name REGEXP '^[aeiou]';