Expression régulière correcte ??

cs_bolandfranck Messages postés 34 Date d'inscription lundi 15 janvier 2007 Statut Membre Dernière intervention 8 octobre 2009 - 19 juil. 2007 à 13:24
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 19 juil. 2007 à 14:22
Bonjour,

Je souhaite pouvoir récuperer la method, le name, l'id et l'action d'un formaulaire de page web, et cela grace à ue expression régulière.

En avant les matheux voila ce que je suis arrivé à faire:

--------- Debut --------
Dim regex_name As New Regex("^<form\s+(((name|id|method|target|action)\s*=\s*['""]{0,1}([a-z:/\.\?%0-9]+)['""]{0,1}\s)|)(((name|id|method|target|action)\s*=\s*['""]{0,1}([a-z:/\.\?%0-9]+)['""]{0,1}\s)|)(((name|id|method|target|action)\s*=\s*['""]{0,1}([a-z:/\.\?%0-9]+)['""]{0,1}\s)|)(((name|id|method|target|action)\s*=\s*['""]{0,1}([a-z:/\.\?%0-9]+)['""]{0,1}\s)|)(((name|id|method|target|action)\s*=\s*['""]{0,1}([a-z:/\.\?%0-9]+)['""]{0,1}\s?)|).*>$", RegexOptions.IgnoreCase)
             Dim res_name As Match= regex_name.Match(res.Value)
--------- Fin ------------

Et cela fonctionne avec mon test :

<form id='tetete' name="tatatata" method="get" action="http://dfgfg.dfgh.dfgh?drt%20uytyt">
</form>

Mon problème est que je ne suis pas encore un grand spécialiste et que je ne suis pas sur que cette expression soit optimal.

Merci de me donner vos avis et vos correction pour des éventualitées que je n'aurais pas pris en compte.

(Pour la suite, la même chose pour les champs, les select case à cocher...)

4 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
19 juil. 2007 à 13:38
une fois retrouvée la balise de <Form

tu peux faire :

(\w+)\s*=\s*(['"]?)([^"']+)\2

pour extraire chaque paire attribut ; valeur

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
cs_bolandfranck Messages postés 34 Date d'inscription lundi 15 janvier 2007 Statut Membre Dernière intervention 8 octobre 2009
19 juil. 2007 à 13:43
Pourrait tu m'éclairer sur "\2" et "^" Stp

Aussi mon souhait est arriver à le faire en une seul expression.

Merci
0
cs_ov3rdoze Messages postés 414 Date d'inscription lundi 19 juillet 2004 Statut Membre Dernière intervention 23 septembre 2014
19 juil. 2007 à 13:52
^ est un 'Non'. Ca veut dire 'Tous les caractères sauf ceux entre les crochets'
Pour le \2 je sais pas désolé
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
19 juil. 2007 à 14:22
deuxieme sous-chaine extraite
en l'occurrence, le ' ou le "

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0