MariaDB - Expressão Regular

Além da correspondência de padrões disponível nas cláusulas LIKE, MariaDB oferece correspondência baseada em expressões regulares por meio do operador REGEXP. O operador executa a correspondência de padrões para uma expressão de string com base em um determinado padrão.

MariaDB 10.0.5 introduziu PCRE Regular Expressions, que aumenta dramaticamente o escopo de correspondência em áreas como padrões recursivos, asserções antecipadas e muito mais.

Revise o uso da sintaxe do operador REGEXP padrão fornecida abaixo -

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

REGEXP retorna 1 para uma correspondência de padrão ou 0 na ausência de uma.

Existe uma opção para o contrário na forma de NOT REGEXP. MariaDB também oferece sinônimos para REGEXP e NOT REGEXP, RLIKE e NOT RLIKE, que foram criados por razões de compatibilidade.

O padrão comparado pode ser uma string literal ou algo mais, como uma coluna de tabela. Em strings, ele usa a sintaxe de escape C, portanto, duplique quaisquer caracteres “\”. REGEXP também não faz distinção entre maiúsculas e minúsculas, com exceção de strings binárias.

Uma tabela de padrões possíveis, que podem ser usados, é fornecida abaixo -

Sr. Não Padrão e Descrição
1

^

Corresponde ao início da string.

2

$

Corresponde ao final da string.

3

.

Corresponde a um único caractere.

4

[...]

Corresponde a qualquer caractere entre colchetes.

5

[^...]

Corresponde a qualquer caractere não listado entre colchetes.

6

p1|p2|p3

Corresponde a qualquer um dos padrões.

7

*

Ele corresponde a 0 ou mais instâncias do elemento anterior.

8

+

Corresponde a 1 ou mais instâncias do elemento anterior.

9

{n}

Corresponde a n instâncias do elemento anterior.

10

{m,n}

Corresponde m a n instâncias do elemento anterior.

Reveja os exemplos de correspondência de padrões fornecidos abaixo -

Produtos começando com “pr” -

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

Produtos que terminam com “na” -

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

Produtos que começam com uma vogal -

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