Générateur de REGEX ?
Forum Programmation : Générateur de REGEX ?
salut à tous IDN,
je voulais savoir si l'un d'entre vous connaissez un générateur de regex ?
Merci d'avance,
fclm
Un générateur de REGEX ?
Est-ce que tu pourrais développer un peu ? Dans quel but ? Il doit pouvoir faire quoi ?
en gros tu rentres dans un champ le "texte" que tu veux recuperer, et ensuite le generateur de genere une REGEX valide pour pouvoir recuperer le "texte" donné ...
J'ai pas envie de réinventer la roue donc si ca existe je veux bien, sinon je suis partis pour develloper .....
C'est pas mal comme idée, mais ce sera pas optimiser...
A moin de faire un truc plus complexe que de le faire soit même ^^
Le problème, c'est qu'il peut y en avoir des centaines de milliers des REGEXP valides pour un texte donné.
Exemple, je donne le mot "bonjour".
Je pourrais avoir comme REGEXP :
(.*)+
bon(.*)+
(.*)+jour
etc...
je vais essayer de develloper le generateur ....
Un mec pas super fort en REGEX qui fait un generateur de REGEX ....
mais tu peux pas faire ça.
| Citation : Le problème, c'est qu'il peut y en avoir des centaines de milliers des REGEXP valides pour un texte donné |
C'est pour ça qu'il existe des librairies de regex et non des générateurs.
http://regexlib.com/
Répondre à MoOx_t
le probleme les librairies de regex quand c'est pour des trucs "habituel" ca gere mais sinon si c'est un truc super spécifique c'est mort ...
Hum ca peut etre intéressant ça tient ^^ je vais essayer d'en fairre un aussi !!!!
Répondre à Kymic@IDN
Vous fumez du crack les gas. Le jour où vous avez fait un générateur de regex que je sais pas comment tu va générer à partir de rien ben je t'appelle PATRON.
Bonne chance, car t'en a bien besoin.
Répondre à MoOx_t
ça à autant de sens que de dire, comment faire un générateur de mots
->soit ça génère des trucs aléatoires donc peu d'intérêts (sauf pour des mots de passe)
->soit ça s'appuie sur un dictionnaire, donc ça ne gère que des cas prédéfinis, dans ce cas on appelle ça une librairie
Editer vos titres (pas de titre en majuscule, [RESOLU] quand c'est le cas)
Tutos IDN
Répondre à maith
Pourquoi vous dites que c'est impossible ?
Je penses faire un système comme ceci :
L'utilisateur saisie plusieurs exemples : texte source et le résultat qu'il attend , et en fonction de ça trouver la regex qui vérifie la condition...
Voila je vais essayer de me pencher dessus ... J'ai déja commencer à y réfléchire et je dois dire que c'est pas tellement évident , mais je suis persuadé que ça reste faisable ....
Répondre à Kymic@IDN
Impossible parce que le langage [Sigma] à définir (une expression régulière est un langage, au sens mathématique), ainsi que son alphabet (toujours sens mathématiques) ne peuvent pas être définis à partir d'un simple échantillon de mots [Sigma*] (car ce n'est pas lui qui dénifit le langage).
[Sigma] est l'ensemble de tous les mots de ton langage. Ton échantillon de mots [Sigma*] est inclus dans [Sigma], mais inversement pas forcément. Donc, à partir de [Sigma*], tu ne peux pas définir [Sigma]. En clair, à partir de ton échantillon de mot, tu ne peux pas définir une expression régulière.
En pratique
- soit tu restreins trop le langage, ([Sigma généré] proche de [Sigma*]) donc il existe un mot X appartement à [Sigma] et qui n'appartient pas à [Sigma généré]
- soit tu ne restreins pas assez le langage, alors il existe un mot X appartenant à [Sigma généré] qui n'appartient pas à [Sigma]
- soit tu as beaucoup de chance (chance en réalité corrélée par un contexte).
Pour simplifier, lorsque tu vas faire ta recherche:
- soit tu restreins trop le langage, et tu oublies des mots valides dans ton expression
- soit tu ne te restreins pas assez, et tu valides des mots qui ne devraient pas l'être
- soit tu trouves un contexte particulier qui te permet d'avoir un peu chance (mais sans garantie mathématique que le résultat est correct, au contraire).
Message édité par CRicky le 16-08-2007 à 20:00:48
81F900FA750230EDBADA03ECA80875FBECA808
74FBE4603C0175DFB80300CD10B8004CCD21
Répondre à CRicky
En bref, oublie ton générateur de regex que s'il était faisable il serait déjà fait...
Y'a pleins d'autres trucs à programmer en plus, comme un générateur de méga insultes super longue à partir d'un dictionnaire (ce n'est qu'un exemple...)
Répondre à MoOx_t
| MoOx_t a écrit :
|
Tu te crois drole ?
PS : j'ai laché l'affaire du générateur de regex ^^
Répondre à Kymic@IDN
y'a un autre truc qu'un generateur, en gros tu demandes la chaine a "regexer", et tu poses plein de questions, et ensuite tu peux construire la REGEX, c'est plus trop un générateur mais un aide-REGEX ....
Ceux que ca tente ^^
Ouai c'est un peu sur quoi j'étais parti , mais c grave long et j'ai pas trop le temps pr ce genre de gadget ^^
Répondre à Kymic@IDN
c'est vrai que c'est super long, mais apres ca facilite la vie de tout le monde ^^
ça ne facilite pas tout le monde parce que ce n'est plus générique, c'est uniquement dépendant de ton contexte.
81F900FA750230EDBADA03ECA80875FBECA808
74FBE4603C0175DFB80300CD10B8004CCD21
Répondre à CRicky
Ahh ahh ca me fait rire
Un ordinateur c'est con ..
Et pour comprendre mieux ce à quoi tu veux t'attaquer, sans le jargon mathématique) considère l'exemple suivant :
Je souhaite capturer les salutations :
--> Bonjour !
--> Bonjour machin !
--> Salut.
--> Hi !!!!
Maintenant pour se mettre au niveau de l'ordinateur et sentir la difficulté,
remplace chaque caractère par son suivant dans l'alphabet (== alphabet ASCII)
T'obtiens des suites incompréhensibles de caractères ...
Comment veux tu deviner ou se trouve les zones ou des caractères (et lesquels ?) qui peuvent se trouver en quantité illimité ?
En gros voici un autre probleme tel que l'ordinaeur le reçoit (la flemme de faire ce que j'ai dit XD avec mon premier exemple) :
--> efe grgre ga !
--> gr ezm grr
--> gr za glprr
Amuses toi pour essayer de trouver du sens ... !
Petite remarque : A une autre echelle, si on considérait chaque mot comme une lettre on pourrait faire ce que tu veux pour les langues étrangère.. Ca serait chouette un programme qui peut deviner quel suite mots on a le droit de mettre entre deux mots
!
Sérieusement, allez lire la doc des regexp ...
C'est franchement pas la mort à comprendre.
Et la nature vous à doté d'un cerveau, utilisez le !
Bande de flemmard
pp (moi le premier)
Après je comprend que certaines regexps ou parties de regexp soient difficiles à trouver.
Exemple :
Trouver la regexp qui cherche le texte entre "<div " et "</div>" de façon non gourmande.
"Non gourmande" signifie qui va trouver deux résultats pour "<div>foo</div><div>bar</div>" et non pas un seul !
La partie qui cherche la première fermeture du </div> n'est pas triviale. Il faut donc faire attention.
Une source que j'ai écrite qui permet de générer ce morceau assez ennuyeux :
http://www.cppfrance.com/codes/GEN [...] 44606.aspx
(google generer regexp manger --> 1er lien)
PS : J'utilise un nom d'utilisateur accessible par tout le monde !!!
C'est c****-c****** d'avoir à s'enregistrer sur tous les sites de nos jours ...
Tout ça pour dire que ce n'est pas forcément "moi" qui répondrai
Message édité par colonne le 22-12-2007 à 21:43:38
bonjour tout le monde
allor je post un message concernant les REGEX
jexplique mon probleme
jai trouve sur le net un logiciel pour extraire les adresse emails d'un ficher texte ( biensur avec la source )
ce logiciel et codé en C#
donc dans la source il y a une partie REGEX pour donné les ordre au logiciel pour extraire les adresse !
mais moi je veut que le logiciel me sorte pas les adresse emails mais certain code !
sous cette forme : M4312g56
- commence toujour par un M
- a toujour 8 caractaire en tous
- a toujour 6 chiffre et 1 lettre sans compté le M
- la lettre ici le g mais ki peut etre nimportekel lettre de lalphabet peut ce trouver nimporte ou dans le code APRE LE M
ex : M34g5434 , M678545g
donc je voudrais avoir lexpression reguliere pour l'introduire dans la source de mon logiciel a la place de lexpression pour extraire les adresse email
sa fait 1 semaine que je me casse la tete decu et je ne trouve pas si quelqun pourrai maider sa serai sympa ![]()
merci bocoup
a bientot mon msn : ***@hotmail.fr
cordialement
Modération : j'ai supprimé ton adresse mail
Message édité par OmaR le 05-07-2008 à 21:11:40
M([0-9][0-9][0-9][0-9][0-9][0-9][a-z]|[0-9][0-9][0-9][0-9][0-9][a-z][0-9]|[0-9][0-9][0-9][0-9][a-z][0-9][0-9]|[0-9][0-9][0-9][a-z][0-9][0-9][0-9]|[0-9][0-9][a-z][0-9][0-9][0-9][0-9]|[0-9][a-z][0-9][0-9][0-9][0-9][0-9]|[a-z][0-9][0-9][0-9][0-9][0-9][0-9])
merci omar ca marche nikel
peut tu me donner lexpression pour extraire ces codes la maintenant
32gf2343
-toujour 8 caractaire
-6 chifre ( il peuvent etre nimporte ou dans le code
- toujour 2 letre ki peut etre aussi nimporte ou dans le code
voila merci de me repondre omar
A ta place, je validerais plusieurs expressions régulières (une par point en fait).
81F900FA750230EDBADA03ECA80875FBECA808
74FBE4603C0175DFB80300CD10B8004CCD21
Répondre à CRicky
Il y a 1800 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.
