REGEX dans MySQL

LaurentKOogar Messages postés 369 Date d'inscription samedi 4 septembre 2004 Statut Membre Dernière intervention 20 octobre 2013 - 14 avril 2006 à 11:38
LaurentKOogar Messages postés 369 Date d'inscription samedi 4 septembre 2004 Statut Membre Dernière intervention 20 octobre 2013 - 15 avril 2006 à 17:53
Bonjour,

Petit souci
dans un annuaire le but est de ([a-z]{2,4})$/([^/]*)du type:
http://www.site.com/pag1/
http://www.site.com/index.html
et ne garder que les url brut
http://www.site.com

DELETE * FROM tb WHERE url REGEXP 'http://www.([[:alnum:]])+([-]?[[:alnum:]])\.([a-z]{2,4})$/([^/]*)'

marche pas

ici c'est bon je crois
[http://www.([[:alnum:]])+([-]?[[:alnum:]])\.([a-z]{2,4})$ http://www.([[:alnum:]])+([-]?[[:alnum:]])\.([a-z]{2,4})$]

peut etre la fin ?
/([^/]*)

8 réponses

LaurentKOogar Messages postés 369 Date d'inscription samedi 4 septembre 2004 Statut Membre Dernière intervention 20 octobre 2013
14 avril 2006 à 11:42
Oups, dommage que l'on puisse pas editer le post

le debut et le but c'est:
dans un annuaire: supprimer les URL du type:
http://www.site.com/pag1/
http://www.site.com/index.html
et ne garder que les url brut
http://www.site.com
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
14 avril 2006 à 16:55
Hello,

la flemme de construire une expreg, mais selon ta version de mysql :
LOCATE('/', 'http://www.site.com', 8) renverra 0
LOCATE('/', 'http://www.site.com/pag1/http://www.site.com/pag1/', 8) renverra 20.

Bref, si c'est > 0, tu delete.
0
LaurentKOogar Messages postés 369 Date d'inscription samedi 4 septembre 2004 Statut Membre Dernière intervention 20 octobre 2013
15 avril 2006 à 03:30
oui mais ce n'est pas en particulier http://www.site.com/pag1/, ca peut etre : http://www.nimportequeldomaine.com/nimportorquelrep/

Donc il faut 1 REGEX a mon sens

??
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
15 avril 2006 à 08:43
t'as mal lu, ou mal compris, ce que fait ma fonction SQL... ;-)
0

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

Posez votre question
LaurentKOogar Messages postés 369 Date d'inscription samedi 4 septembre 2004 Statut Membre Dernière intervention 20 octobre 2013
15 avril 2006 à 11:59
oups
je teste ca !!!
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
15 avril 2006 à 14:04
Salut,

euh... moi je ferais un :





CREATE FUNCTION substringcount( string1 TEXT, string2 TEXT ) RETURNS REAL

DETERMINISTIC RETURN (LENGTH(string1)-LENGTH(REPLACE(string1, string2, "")))/LENGTH(string2);









et substringcount("/", SUBSTR(adresse,1,LENGTH(adresse)-1); te renvoi le nombre de
/ que tu as dans l'adresse si on supprime le dèrnier caractère, ce qui fait 2...

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
0
LaurentKOogar Messages postés 369 Date d'inscription samedi 4 septembre 2004 Statut Membre Dernière intervention 20 octobre 2013
15 avril 2006 à 17:40
Merci de vous occuper un peu de moi, perso je nage un peu. Je n'ai pas votre niveau.
Donc la requete je l'ai ecrit comme cela mais pas tester : c'est bon ?
mysql_query("DELETE * FROM $tb WHERE url LOCATE('/', 'url', 8) > 0");

Pour coucou747, honnete je ne sais pas mettre la requete en place. php ca va encore mais mysql, je suis novice.
0
LaurentKOogar Messages postés 369 Date d'inscription samedi 4 septembre 2004 Statut Membre Dernière intervention 20 octobre 2013
15 avril 2006 à 17:53
Je re car d'une maniere générale ca ne marche pas:
cela va suprimer les nombreuses url de type : http://www.site.com/
Faut revenir au REGEX ???
0
Rejoignez-nous