Maison > Article > base de données > Tutoriel sur l'utilisation d'expressions régulières pour rechercher et faire correspondre dans MySQL (2)
OR match
Pour rechercher l'une des deux chaînes (soit pour cette chaîne, soit pour une autre chaîne), utilisez |, comme indiqué ci-dessous :
Entrée :
select prod_name from products where prod_name regexp '1000|2000' order by prod_name;
Sortie :
Analyse : L'expression régulière 1000|2000 est utilisée dans l'instruction. | est l'opérateur ou des expressions régulières. Il est indiqué que l'un d'entre eux correspond, donc 1 000 et 2 000 sont appariés et renvoyés.
L'utilisation de | est fonctionnellement similaire à l'utilisation de l'instruction or dans une instruction select. Plusieurs conditions or peuvent être fusionnées en une seule expression régulière.
Remarque : Plus de deux conditions peuvent être données. Par exemple, « 1000|2000|3000 » correspondra à 1000, ou 2000 ou 3000.
correspond à l'un des nombreux caractères
correspond à n'importe quel caractère. Mais que se passe-t-il si vous souhaitez uniquement faire correspondre des caractères spécifiques ?
Cela peut être fait en formulant un ensemble de caractères entourés de [ et ], comme indiqué ci-dessous :
Entrée : sélectionnez prod_name parmi les produits où prod_name regexp '[123] Ton' commande par prod_name ;
Sortie :
Analyse : Ici, l'expression régulière [123]Ton est utilisée. [123] définit un ensemble de caractères qui signifie correspondre à 1, 2 ou 3. Par conséquent, 1ton et 2ton correspondent et sont renvoyés (pas de 3ton).
Comme vous pouvez le voir, [] est une autre forme de déclaration ou. En fait, l'expression régulière [123]Ton est l'abréviation de [1|2|3]Ton, et cette dernière peut également être utilisée. Cependant, [] est nécessaire pour définir ce que recherche l'instruction or. Pour mieux comprendre cela, il faut regarder l'exemple suivant :
Entrée :
select prod_name from products where prod_name regexp '1|2|3 Ton‘ order by prod_name;
Sortie :
Analyse : Cette n'est pas le résultat attendu. Les deux lignes demandées ont été récupérées, mais trois lignes supplémentaires ont été récupérées, et la raison en est que MySQL suppose que vous vouliez dire « 1 », « 2 » ou « 3 tonnes ». À moins que le caractère | ne soit développé dans un ensemble, il s'applique à la chaîne entière. Le jeu de caractères
peut également être annulé, c'est-à-dire qu'ils correspondront à tout sauf aux caractères spécifiés. Pour annuler un jeu de caractères, placez un ^ au début du jeu. Ainsi, alors que [123] correspond aux caractères 1, 2 ou 3, [^123] correspond à tout sauf ces caractères.
Plage de correspondance La collection
peut être utilisée pour définir un ou plusieurs caractères à faire correspondre. Par exemple, une collection de lignes et de polygones correspondrait aux nombres 0 à 9 :
[123456789]
Pour simplifier ce type de collection, vous pouvez utiliser - pour définir une plage. La formule suivante est fonctionnellement équivalente à la liste de nombres ci-dessus :
[0-9]
La plage n'est pas limitée à l'ensemble complet, [1-3] et [6-9 ] ont également une portée juridique. De plus, la plage ne doit pas nécessairement être uniquement numérique, [a-z] correspond à n'importe quel caractère alphabétique.
Par exemple :
Entrée :
select prod_name from products where prod_name regexp '[1-5] Ton’ order by prod_name;
Sortie :
Analyse : les expressions régulières sont utilisées ici Formule [1-5]Tonne. [1-5] définit une plage. Cette expression signifie faire correspondre 1 à 5, donc 3 lignes correspondantes sont renvoyées. Depuis les correspondances de 5 tonnes, 0,5 tonne est restituée.
[Recommandations associées]
2. Tutoriel vidéo en ligne gratuit
3.Le dernier didacticiel vidéo de base MySQL de Han Shunping en 2016
4.mTutoriel de recherche et de correspondance à l'aide d'expressions régulières dans ysql (3)
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!