[RESOLU] Recherche d'une Regexp

Cliquer ici pour accéder a tous les problèmes résolus de cette catégorie...

Modérateurs : Naveed, GregLand

Avatar du membre
GregLand
Programmeur & Administrateur
Programmeur & Administrateur
Messages : 4147
Enregistré le : 10 oct. 2003 09:36
Langage de programmation connu : .
Utilisés régulièrement :
- Visual DialogScript
- AutoIt
- AutoHotkey
- Html, Js, Vbs, PHP

Utilisés moins souvent :
- C et C++
- VB et VB.Net (pour les DLL)
- Delphi (Pour DLL)
- Java (Pour Android)
- ASM (pour désassembler)
- Python (quand je m'ennuie)
- et quelques autres.... ;-)
Localisation : Les Damps (27)
Contact :

[RESOLU] Recherche d'une Regexp

Messagepar GregLand » 08 mars 2008 21:08

Hello...

Je cherche une expression régulière permettant de trouver un nombre sous le format :

15,50 EUR
110,62 EUR
1,10 EUR


(qui représente bien entendue une somme d'argent)

Je suis arrivé a ceci :
#[0-9]+[,]+[0-9]+ EUR#

mais ça ne fonctionne pas toujours...

Une solution les fans de regexp ?
Modifié en dernier par GregLand le 09 mars 2008 16:10, modifié 1 fois.

Avatar du membre
GregLand
Programmeur & Administrateur
Programmeur & Administrateur
Messages : 4147
Enregistré le : 10 oct. 2003 09:36
Langage de programmation connu : .
Utilisés régulièrement :
- Visual DialogScript
- AutoIt
- AutoHotkey
- Html, Js, Vbs, PHP

Utilisés moins souvent :
- C et C++
- VB et VB.Net (pour les DLL)
- Delphi (Pour DLL)
- Java (Pour Android)
- ASM (pour désassembler)
- Python (quand je m'ennuie)
- et quelques autres.... ;-)
Localisation : Les Damps (27)
Contact :

Messagepar GregLand » 08 mars 2008 22:25

A moins que ce ne soit [0-9]*,[0-9]* EUR :roll:

Avatar du membre
Naveed
Messages : 2005
Enregistré le : 13 sept. 2003 13:03
Localisation : 91 (Essonne)
Contact :

Messagepar Naveed » 08 mars 2008 23:42

[0-9]+[,]+[0-9]+ EUR
ça ça marche.

j'ai testé là
http://www.annuaire-info.com/outil-refe ... reguliere/
et là :
http://www.regular-expressions.info/jav ... ample.html

je sais pas pk t'a mis des dièses
sinon celle des étoiles fonctionnent mais elle est pas correcte parce qu'elle trouver correct si tu met ",05 EUR" par exemple.
:: Naveed ::
Site : http://naveed.free.fr
Livre d'or : http://www.swisstools.net/guestbook.asp?id=27217
"Loin de moi toute prétention de génie, mais si je puis vous aider..."
Image

Avatar du membre
Mick@el
Messages : 542
Enregistré le : 18 févr. 2006 22:45
Langage de programmation connu : Python, PHP, Javascript, C#, C++, C
Localisation : Nancy
Contact :

Messagepar Mick@el » 09 mars 2008 02:52

\d+,\d+ EUR

(pareil que [0-9]+,[0-9]+ EUR)

Pour info Greg, ta regex initiale, elle aurait aussi pris 12,,,,12345 EUR :P
Donc si tu veux être encore plus strict, genre N+,NN EUR tu peux utiliser
\d+,\d{2} EUR qui prendra 12,34 EUR mais pas 12,345 EUR

Avatar du membre
GregLand
Programmeur & Administrateur
Programmeur & Administrateur
Messages : 4147
Enregistré le : 10 oct. 2003 09:36
Langage de programmation connu : .
Utilisés régulièrement :
- Visual DialogScript
- AutoIt
- AutoHotkey
- Html, Js, Vbs, PHP

Utilisés moins souvent :
- C et C++
- VB et VB.Net (pour les DLL)
- Delphi (Pour DLL)
- Java (Pour Android)
- ASM (pour désassembler)
- Python (quand je m'ennuie)
- et quelques autres.... ;-)
Localisation : Les Damps (27)
Contact :

Messagepar GregLand » 09 mars 2008 04:52

Mick@el a écrit :elle aurait aussi pris 12,,,,12345 EUR

Bien vu... Image

Naveed a écrit :je sais pas pk t'a mis des dièses

Je trouve que ça fait plus jolie et moins froid avec des #... :D


Merci, j'avoue lutter un peu avec les Regexp... surtout quand je suis de matin (5:00 -> 13:00) pendant un week end Image

Juste une petite chose, il faudrait aussi que les nombres :
15,50 EUR
110,62 EUR
1,10 EUR
9,99 EUR
12.490,00 EUR
321.123.125,46 EUR
1.100.000,00 EUR

.....

soient pris en compte...

La version \d+,\d{2}+ EUR me plait bien pour le moment... Image par contre, {2} me créé une erreur de regexp... :|

En fait (pour info) ce serait pour trouver la valeur de l'enchère actuelle dans Ebay
Image
Modifié en dernier par GregLand le 09 mars 2008 15:04, modifié 1 fois.

Avatar du membre
Naveed
Messages : 2005
Enregistré le : 13 sept. 2003 13:03
Localisation : 91 (Essonne)
Contact :

Messagepar Naveed » 09 mars 2008 13:26

et moi qui croyait que le dièse c t un truc regexp, c pour ça que je trouvais pas le caractère, ah lala sacré greg, maintenant tu nous mets des pièges esthétiques lol
:: Naveed ::

Site : http://naveed.free.fr

Livre d'or : http://www.swisstools.net/guestbook.asp?id=27217

"Loin de moi toute prétention de génie, mais si je puis vous aider..."

Image

Avatar du membre
Naveed
Messages : 2005
Enregistré le : 13 sept. 2003 13:03
Localisation : 91 (Essonne)
Contact :

Messagepar Naveed » 09 mars 2008 13:44

\d+,\d{2}+ EUR
cette expression est valide

sinon si t'a des problèmes d'accolades, tu peux faire
\d+,\d\d EUR
(j'aimais bien le [0-9] c t plus parlant)

tu es sûr que tu veux valider le nombre "321.123.125,46 EUR" ??
parce que pour tout le reste l'expression fonctionne.

on pourrait affiner de manière plus restrictive mais il faut déjà que les accolades fonctionnent chez toi sinon ça va être difficile.
:: Naveed ::

Site : http://naveed.free.fr

Livre d'or : http://www.swisstools.net/guestbook.asp?id=27217

"Loin de moi toute prétention de génie, mais si je puis vous aider..."

Image

Avatar du membre
GregLand
Programmeur & Administrateur
Programmeur & Administrateur
Messages : 4147
Enregistré le : 10 oct. 2003 09:36
Langage de programmation connu : .
Utilisés régulièrement :
- Visual DialogScript
- AutoIt
- AutoHotkey
- Html, Js, Vbs, PHP

Utilisés moins souvent :
- C et C++
- VB et VB.Net (pour les DLL)
- Delphi (Pour DLL)
- Java (Pour Android)
- ASM (pour désassembler)
- Python (quand je m'ennuie)
- et quelques autres.... ;-)
Localisation : Les Damps (27)
Contact :

Messagepar GregLand » 09 mars 2008 14:48

tu es sûr que tu veux valider le nombre "321.123.125,46 EUR" ??

Effectivement, j'aimerais valider n'importe quel nombre... (même si je les aient pas sur mon compte Image )

On peut à la limite limiter à 999.999.999.999,99 EUR si ça pose problème :D (mais de préférence non)

Donc on suppose les nombres :
999.999.999.999,99 EUR
1.100.000,00 EUR
321.123.125,46 EUR
12.490,00 EUR
9,99 EUR


ça donnerait quelque chose comme celà ?
([0-9]+.|)([0-9]+.|)([0-9]+.|)([0-9]+,|)[0-9]+ EUR
ou ça :
(\d+.|)(\d+.|)(\d+.|)(\d+,|)\d+ EUR

ça a l'air de fonctionner, mais il y a peut être plus simple...

Avatar du membre
Naveed
Messages : 2005
Enregistré le : 13 sept. 2003 13:03
Localisation : 91 (Essonne)
Contact :

Messagepar Naveed » 09 mars 2008 15:44

Dernière édition par GregLand le 09 Mar 2008 14:04; édité 1 fois
-> je te posais la question parce que t'avais mis 3 chiffres après la virgule.

ton problème d'accolade est réglé ou pas?
sinon
\d+,\d\d EUR
fonctionne tt simplement !
:: Naveed ::

Site : http://naveed.free.fr

Livre d'or : http://www.swisstools.net/guestbook.asp?id=27217

"Loin de moi toute prétention de génie, mais si je puis vous aider..."

Image

Avatar du membre
GregLand
Programmeur & Administrateur
Programmeur & Administrateur
Messages : 4147
Enregistré le : 10 oct. 2003 09:36
Langage de programmation connu : .
Utilisés régulièrement :
- Visual DialogScript
- AutoIt
- AutoHotkey
- Html, Js, Vbs, PHP

Utilisés moins souvent :
- C et C++
- VB et VB.Net (pour les DLL)
- Delphi (Pour DLL)
- Java (Pour Android)
- ASM (pour désassembler)
- Python (quand je m'ennuie)
- et quelques autres.... ;-)
Localisation : Les Damps (27)
Contact :

Messagepar GregLand » 09 mars 2008 16:10

t'avais mis 3 chiffres après la virgule

Je m'étais effectivement trompé... Que 2 chiffres après la virgule... Image

ça fonctionne nikel....
Merci a vous deux !

Avatar du membre
GregLand
Programmeur & Administrateur
Programmeur & Administrateur
Messages : 4147
Enregistré le : 10 oct. 2003 09:36
Langage de programmation connu : .
Utilisés régulièrement :
- Visual DialogScript
- AutoIt
- AutoHotkey
- Html, Js, Vbs, PHP

Utilisés moins souvent :
- C et C++
- VB et VB.Net (pour les DLL)
- Delphi (Pour DLL)
- Java (Pour Android)
- ASM (pour désassembler)
- Python (quand je m'ennuie)
- et quelques autres.... ;-)
Localisation : Les Damps (27)
Contact :

Messagepar GregLand » 27 mars 2008 19:55

Un autre Testeur de Regexp pas mal du tout si ça vous intéresse...
ça se passe par là

Avatar du membre
Mick@el
Messages : 542
Enregistré le : 18 févr. 2006 22:45
Langage de programmation connu : Python, PHP, Javascript, C#, C++, C
Localisation : Nancy
Contact :

Messagepar Mick@el » 28 mars 2008 01:37

GregLand a écrit :
tu es sûr que tu veux valider le nombre "321.123.125,46 EUR" ??

Effectivement, j'aimerais valider n'importe quel nombre... (même si je les aient pas sur mon compte Image )

On peut à la limite limiter à 999.999.999.999,99 EUR si ça pose problème :D (mais de préférence non)

Donc on suppose les nombres :
999.999.999.999,99 EUR
1.100.000,00 EUR
321.123.125,46 EUR
12.490,00 EUR
9,99 EUR


ça donnerait quelque chose comme celà ?
([0-9]+.|)([0-9]+.|)([0-9]+.|)([0-9]+,|)[0-9]+ EUR
ou ça :
(\d+.|)(\d+.|)(\d+.|)(\d+,|)\d+ EUR

ça a l'air de fonctionner, mais il y a peut être plus simple...

Quelle horreur :D

[0-9.]+,\d{2} EUR

De toute façon, si c'est pour récupérer ça sur ebay, on risque pas d'avoir deux virgules de suite ou autre connerie ^^
Donc autant faire une regex plus permissive mais plus simple :
[0-9.,]+ EUR

Avatar du membre
Duke
Messages : 326
Enregistré le : 21 juil. 2006 00:34
Localisation : Suisse (Ge, Vd, Fr); Paris

Messagepar Duke » 28 mars 2008 11:32

et c'est quoi regexp?
j'ai dû louper une étape là...
" Pourquoi prendre la vie au sérieux, puisque de toute façon, on n'en ressort pas vivant! "

" Il y a plus de Génie dans un Kilo d'abeilles que dans un Kilo de Mammouth!" (Ou: l'union fait la force.)

" I trust Me ! " (Scarface & Duke);

" De l'audace, encore de l'audace, toujours de l'audace! "

"Visez la Lune, au pire, sivous la manquez, vous serez au millieu des étoiles!"

"l'argent ne fait pas le bonheur, mais je préfère pleurer dans une Porsche que rire dans une épave"


ImageImage

Avatar du membre
GregLand
Programmeur & Administrateur
Programmeur & Administrateur
Messages : 4147
Enregistré le : 10 oct. 2003 09:36
Langage de programmation connu : .
Utilisés régulièrement :
- Visual DialogScript
- AutoIt
- AutoHotkey
- Html, Js, Vbs, PHP

Utilisés moins souvent :
- C et C++
- VB et VB.Net (pour les DLL)
- Delphi (Pour DLL)
- Java (Pour Android)
- ASM (pour désassembler)
- Python (quand je m'ennuie)
- et quelques autres.... ;-)
Localisation : Les Damps (27)
Contact :

Messagepar GregLand » 28 mars 2008 15:17

Quelle horreur Image

Je savais que tu allais dire ça !!! Image

et c'est quoi regexp?

Tu as essayé une recherche dans Google ? Image