Maison  >  Article  >  base de données  >  Comment MySQL utilise-t-il les expressions régulières ? (exemple de code)

Comment MySQL utilise-t-il les expressions régulières ? (exemple de code)

青灯夜游
青灯夜游original
2019-01-12 13:27:0110689parcourir

MySQL prend en charge une autre opération de correspondance de modèles basée sur les expressions régulières et l'opérateur regexp. L'article suivant vous présentera les expressions régulières (Regexp) de MySQL et vous présentera brièvement comment utiliser les expressions régulières (Regexp) dans MySQL à travers des exemples. J'espère que cela vous sera utile.

Comment MySQL utilise-t-il les expressions régulières ? (exemple de code)

Une brève introduction aux expressions régulières MySQL (Regexp)

1. Il fournit des modèles de correspondance puissants et flexibles qui peuvent nous aider à mettre en œuvre de puissants utilitaires de recherche pour les systèmes de bases de données.

2. regexp est l'opérateur utilisé lors de la correspondance de modèles d'expressions régulières, et rlike est un synonyme.

3. Il prend également en charge un certain nombre de métacaractères qui offrent une plus grande flexibilité et un plus grand contrôle lors de la correspondance de modèles.

4. La barre oblique inverse est utilisée comme caractère d'échappement. Si des barres obliques inverses doubles sont utilisées, elles ne sont prises en compte que dans la correspondance de modèles.

5. Ce n'est pas sensible à la casse.

Ce qui suit est un tableau de modèles réguliers qui peuvent être utilisés avec l'opérateur REGEXP. [Tutoriels vidéo associés recommandés : Tutoriel vidéo MySQL]

Modèle Description (plus précisément à quoi correspondre)
^ correspond au début de la chaîne.
$ correspond à la position finale de la chaîne.
. correspond à n'importe quel caractère sauf "n".
[...] correspond à n'importe quel caractère qu'il contient.
[^...] correspond à tout caractère non inclus.
? correspond à zéro ou à une sous-expression (chaîne) qui la précède.
* correspond à zéro ou plusieurs sous-expressions (chaînes) qui le précèdent.
+ correspond à une ou plusieurs sous-expressions (chaînes) qui la précèdent.
[abc] correspond à l'un des caractères répertoriés entre crochets.
[^abc] correspond à tous les caractères non répertoriés entre crochets.
[A-Z] correspond à n'importe quelle lettre majuscule.
[a-z] correspond à n'importe quelle lettre minuscule.
[0-9] correspond à n'importe quel nombre de 0 à 9.
[[:7f91d1908fc77fc33a937affc60333d5:]] correspond à la fin d'un mot.
[:class:] correspond aux classes de caractères, c'est-à-dire que [:alpha:] correspond aux lettres, [:space:] correspond aux espaces, [:punct: ] correspond à la ponctuation, [:upper:] correspond aux lettres majuscules.
p1|p2|p3 correspond à n'importe quel motif, p1 ou p2 ou p3
{n} Faire correspondre n sous-expressions qui précèdent n éléments
{m,n> Faire correspondre n sous-expressions qui correspondent à m aux éléments précédents

Exemple d'utilisation :

Ce qui suit utilise un exemple simple pour présenter l'utilisation des expressions régulières MySQL (Regexp).

1. Faites correspondre le début de la chaîne (^) :

Faites correspondre toutes les données dont le champ de nom commence par « sa », par exemple : Sample-sam, samarth .

SELECT name FROM student_tbl WHERE name REGEXP '^sa';

2. Faites correspondre la fin de la chaîne ($) :

Faites correspondre toutes les données dont le champ de nom se termine par 'on', par exemple : norton, Merton.

SELECT name FROM student_tbl WHERE name REGEXP 'on$';

3. Faites correspondre zéro ou une sous-expression (?) de la chaîne qui la précède :

Faites correspondre toutes les données dont le champ de titre contient 'com', Exemple : comédie, comédie romantique.

SELECT title FROM movies_tbl WHERE title REGEXP 'com?';

4. Faites correspondre n'importe quel motif p1, p2 ou p3 (p1 | p2 | p3) :

Le champ du nom de correspondance contient « be » ou « ae » Toutes les données, par exemple : Abel, Baer.

SELECT name FROM student_tbl WHERE REGEXP 'be|ae' ;

5. Faites correspondre tous les caractères répertoriés entre crochets ([abc]) :

Faire correspondre le champ de nom contenant 'j' ou 'z' Toutes les données, par exemple : Lorentz, Rajs.

SELECT name FROM student_tbl WHERE REGEXP '[jz]' ;

6. Faites correspondre n'importe quelle lettre minuscule ([a-z]) entre « a » et « z » ([a-z] et (.)) :

Correspond à toutes les données de chaîne dans lesquelles le premier chiffre du champ de nom contient des lettres comprises entre "b" et "g", le deuxième chiffre contient n'importe quel caractère et le troisième chiffre contient la lettre "a", par exemple : Tobias , coudre.

correspond à n'importe quel caractère unique (.)

SELECT name FROM student_tbl WHERE REGEXP '[b-g].[a]' ;

7. Correspond à tout caractère non répertorié entre crochets ([^ abc]) :

Correspond à tous les noms qui ne contiennent pas « j » ou « z ». Exemple : Nerton, Sewall.

SELECT name FROM student_tbl WHERE REGEXP '[^jz]' ;

8. Faites correspondre la sous-chaîne à la fin du mot [[:>:]]

Faites correspondre la sous-chaîne se terminant par le caractère "ack" dans le champ titre Toutes les données, exemple : Noir.

SELECT title FROM movies_tbl WHERE REGEXP 'ack[[:>:]]';

9. Faites correspondre la sous-chaîne au début du mot [[:<:]]

Faites correspondre la sous-chaîne commençant par le caractère "pour" dans le champ de titre Toutes les données, exemple : Oublier Sarah Marshal.

SELECT title FROM movies_tbl WHERE title REGEXP &#39;[[:<:]]for&#39;;

10. Classe de caractères de correspondance [:class:] :

ie [:lower:] - caractères minuscules, [:digit:] - caractères numériques attendez.

Correspond à toutes les données qui contiennent uniquement des caractères alphabétiques dans le champ de titre, par exemple : Stranger Things, Avengers.

SELECT title FROM movies_tbl WHERE REGEXP &#39;[:alpha:]&#39; ;

Ce qui précède représente l’intégralité du contenu de cet article, j’espère qu’il sera utile à l’étude de chacun. Pour un contenu plus passionnant, vous pouvez prêter attention aux colonnes de didacticiels pertinentes du site Web PHP chinois ! ! !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn