Reg Ex Mysql

Résolu
Grimm -  
okuni Messages postés 1221 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je désire faire une recherche sur des formule brute.

Je cherche donc un moyen de construire une RegEx qui permet de vérifier si deux éléments existent dans la formule peu importe leur place dans la formule.

Exemple : on cherche l'élément C et Cl
Il doit me trouver toutes les formule qui comporte C ET Cl et non pas seulement l'un des deux.

Le mieux que j'ai trouvé c'était '.*C.*(Cl).*' cetet formuel prend en compte l'ordre des caractère donc il ne me prendra jamais un 'ClC6H4CHO' car le Cl est placé avant.

J'espère m'etre fait comprendre et merci d'avance pour l'aide :D
A voir également:

16 réponses

okuni Messages postés 1221 Date d'inscription   Statut Membre Dernière intervention   126
 
j'ai oublié de rajouter Formule_brute devant le 2ème LIKE ^^"
mysql_query('SELECT Formule_brute FROM Table_PP WHERE Formule_brute LIKE BINARY "%C%" AND Formule_brute LIKE BINARY "%F%"') or die('erreur sql (formule_brute) : '.mysql_error());

ça devrait fonctionner maintenant :p
1
Grimm
 
Up !

SVP une ptite reponse :)
0
okuni Messages postés 1221 Date d'inscription   Statut Membre Dernière intervention   126
 
le "ou" dans une regex est représenté par |
donc (C|Cl)+
le + pour dire que C ou Cl doit apparaitre au moins 1 fois
0
Grimm
 
Moi je veux un ET ^^
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
 
Salut,

Vas voir ici

0
Grimm
 
Merci mais j'ai déjà lu ça !

ça me dis pas ce que je cherche, faut vérifier avant de balancer des liens

merci quand meme ;)
0
okuni Messages postés 1221 Date d'inscription   Statut Membre Dernière intervention   126
 
ha ok alors ça se complique :p
il faut d'office ceci C+ et alors l* donc il prendra tout les molécules ayant un C et aussi contenant un l donc C ou Cl

EDIT : (C|Cl)+ en utilisant ça, tu va retourner les molécules suivante (exemple)
C
Cl
CCl
donc ça convient pour toi non?
0
Grimm
 
Salut Okuni merci d'insister pour m'aider à trouver la réponse ;-)

Non enfait on va changer les molecule pour mieux comprendre, on va prendre C et F. Donc moi ej veux trouver toutes les formule qui contiennent C ET F.

C2F4
F6C2
etc...

Il me faut les deux obligatoirement donc un OU est a exclure doffice :(
0
okuni Messages postés 1221 Date d'inscription   Statut Membre Dernière intervention   126
 
ok je vois mieux maintenant :p
[CF]+
si on fait ça, il y a un problème dans l'ordre, ce sera d'office une molécule avec CF ou FC

mince...
je pense qu'avec une seule requete, ce n'est pas possible.
si tu fais ça en 2 requetes, ce sera plus facile. Tu pourrais pas exemple prendre toutes les molécules ayant C
ensuite tu filtre le résultat avec toutes les molécules contenant F.

J'espère que quelqu'un d'autre pourra nous éclairer mais a ma connaissance, il n'y a pas de et logique.
0
Grimm
 
Ok c'est bien ce que je pensais mince alors :(

Sinon je cherchais un moyen de faire ça dans la requete SQL genre faire des LIKE BINARY '%%C%%' AND LIKE BINARY '%%F%%' mais il veut pas qu'on en mette deux des like binary :D

Bref ça gave ce truc ^^

J'ai demander à l'un de mes prof mais toujours pas de réponse lol
0
okuni Messages postés 1221 Date d'inscription   Statut Membre Dernière intervention   126
 
pour ça, tu dois écrire ceci :
champ_molecule like binary '%C%' and like binary '%F%'
pourquoi écrire 2 fois % ?

j'utilise une requete contenant 2 like binary, et tout fonctionne correctement ;)
0
Grimm
 
mysql_query("SELECT Formule_brute FROM Table_PP WHERE Formule_brute LIKE BINARY '%C%' AND LIKE BINARY '%F%' ");

Je met ça mec et ça me met une erreur :(

Alors que si j'en met qu'un seul ça marche ... panni comprendre moi ^^
0
okuni Messages postés 1221 Date d'inscription   Statut Membre Dernière intervention   126
 
met ceci :
mysql_query('SELECT Formule_brute FROM Table_PP WHERE Formule_brute LIKE BINARY "%C%" AND LIKE BINARY "%F%" ') or die('erreur sql (formule_brute) : '.mysql_error());

Ensuite dis moi l'erreur qui est affiché :)
0
Grimm
 
Voici la belle erreur :

erreur sql (formule_brute) : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LIKE BINARY "%F%"' at line 1
0
Grimm
 
Mince je pensais t'avoir répondu...

j'avais dis ....

oooh le bo goss ça marche merci ;-)

C'est une petit erreur d'inatention j'aurai du y penser !

En totu qu'a si j'ai un probleme je sais a qui demander dorenavant ;-)
0
okuni Messages postés 1221 Date d'inscription   Statut Membre Dernière intervention   126
 
pas de problème :D

Et si un jour tu trouve une astuce pour faire un et logique avec un regex, dis le moi, ça m'intéresse :)
0