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]';