Maison > base de données > tutoriel mysql > le corps du texte

Pourquoi ma requête MySQL REGEXP échoue-t-elle avec « opérande d'opérateur de répétition invalide » ?

Barbara Streisand
Libérer: 2024-11-26 15:54:11
original
594 Les gens l'ont consulté

Why Does My MySQL REGEXP Query Fail with

Échec de l'expression régulière : 'opérande d'opérateur de répétition invalide'

Lorsque vous tentez d'exécuter la requête MySQL suivante :

SELECT text 
FROM `articles` 
WHERE content REGEXP '.*<img.*?src=\"http://www' 
ORDER BY date DESC
Copier après la connexion

vous rencontrez le erreur : #1139 - Erreur obtenue « opérande d'opérateur de répétition invalide » à partir de l'expression rationnelle. Bien que l'expression régulière fonctionne correctement dans Notepad, MySQL la rejette.

Comprendre le problème : POSIX vs PCRE

Le moteur d'expression régulière MySQL adhère à POSIX 1003.2, qui ne prend pas en charge le point d'interrogation (?) comme modificateur non gourmand dans les quantificateurs ( et ). Par conséquent, vous ne pouvez pas employer  ? et ? dans vos expressions régulières.

Résolution : Utiliser un quantificateur gourmand

Pour résoudre ce problème, utilisez la version gourmande du quantificateur, qui suffira toujours pour l'objectif recherché. Néanmoins, pour éviter toute correspondance indésirable d'éléments tels que :

<img>
Copier après la connexion

incorporez une classe de caractères niée comme suit :

'<img[^>]*src="http://www'
Copier après la connexion

N'oubliez pas que le caractère " ne nécessite pas d'échappement et que le .* au début est implicite.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal