Artigo Diretório
banco de dados MySQLComo a expressão regular corresponde?MySQL regexp como uso
Expressões regulares do MySQL
Nos capítulos anteriores aprendemos que o MySQL pode ser CURTI...% para correspondência difusa.
O MySQL também suporta a correspondência de outras expressões regulares.O operador REGEXP é usado no MySQL para correspondência de expressões regulares.
Se você conhece PHP ou Perl, é bastante simples, pois a correspondência de expressões regulares do MySQL é semelhante àquelas desses scripts.
Os padrões regulares na tabela a seguir podem ser aplicados ao operador REGEXP.
Mode | 描述 |
---|---|
^ | Corresponde ao início da string de entrada.^ também corresponde à posição após '\n' ou '\r' se a propriedade Multiline do objeto RegExp estiver definida. |
$ | Corresponde ao final da string de entrada.Se a propriedade Multiline do objeto RegExp for definida, $ também corresponderá à posição antes de '\n' ou '\r'. |
. | Corresponde a qualquer caractere único, exceto "\n".Para corresponder a qualquer caractere, incluindo '\n', use um padrão como '[.\n]'. |
[...] | coleção de personagens.Corresponde a qualquer um dos caracteres contidos.Por exemplo, '[abc]' corresponderia a "plai'a' em n". |
[^…] | Conjunto de caracteres negativos.Corresponde a qualquer caractere não contido.Por exemplo, '[^abc]' corresponderia a 'p' em "simples". |
p1|p2|p3 | Corresponde a p1 ou p2 ou p3.Por exemplo, 'z|food' corresponderia a "z" ou "food". '(z|f)ood' corresponde a "zood" ou "food". |
* | Corresponde à subexpressão anterior zero ou mais vezes.Por exemplo, zo* corresponderia tanto a "z" quanto a "zoo". * é equivalente a {0,}. |
+ | Corresponde à subexpressão anterior uma ou mais vezes.Por exemplo, 'zo+' corresponderia a "zo" e "zoo", mas não a "z". + é equivalente a {1,}. |
{não} | n é um número inteiro não negativo.Corresponde exatamente n vezes.Por exemplo, 'o{2}' não corresponderia ao 'o' em "Bob", mas corresponderia a ambos os o's em "comida". |
{n, m} | Ambos m e n são inteiros não negativos, onde n <= m.Corresponde pelo menos n vezes e no máximo m vezes. |
Instância
Depois de entender os requisitos regulares acima, podemos escrever instruções SQL com expressões regulares de acordo com nossos próprios requisitos.Abaixo listaremos alguns pequenos exemplos (nome da tabela: person_tbl ) para aprofundar nosso entendimento:
Encontre todos os dados começando com 'st' no campo de nome:
mysql> SELECT name FROM person_tbl WHERE name REGEXP '^st';
Encontre todos os dados que terminam com 'ok' no campo de nome:
mysql> SELECT name FROM person_tbl WHERE name REGEXP 'ok$';
Encontre todos os dados contendo a string 'mar' no campo de nome:
mysql> SELECT name FROM person_tbl WHERE name REGEXP 'mar';
Encontre todos os dados no campo de nome que começam com um caractere de vogal ou terminam com a string 'ok':
mysql> SELECT name FROM person_tbl WHERE name REGEXP '^[aeiou]|ok$';
Hope Chen Weiliang Blog ( https://www.chenweiliang.com/ ) compartilhado "Como combinar expressões regulares do banco de dados MySQL? MySQL regexp like usage" irá ajudá-lo.
Bem-vindo a compartilhar o link deste artigo:https://www.chenweiliang.com/cwl-492.html
Bem-vindo ao canal Telegram do blog de Chen Weiliang para receber as últimas atualizações!
📚 Este guia contém um valor enorme, 🌟Esta é uma oportunidade rara, não perca! ⏰⌛💨
Compartilhe e curta se gostar!
Seus compartilhamentos e curtidas são nossa motivação contínua!