Expression régulière correcte ??

Signaler
Messages postés
34
Date d'inscription
lundi 15 janvier 2007
Statut
Membre
Dernière intervention
8 octobre 2009
-
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
-
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

Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
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
Messages postés
34
Date d'inscription
lundi 15 janvier 2007
Statut
Membre
Dernière intervention
8 octobre 2009

Pourrait tu m'éclairer sur "\2" et "^" Stp

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

Merci
Messages postés
414
Date d'inscription
lundi 19 juillet 2004
Statut
Membre
Dernière intervention
23 septembre 2014

^ est un 'Non'. Ca veut dire 'Tous les caractères sauf ceux entre les crochets'
Pour le \2 je sais pas désolé
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
deuxieme sous-chaine extraite
en l'occurrence, le ' ou le "

Renfield
Admin CodeS-SourceS- MVP Visual Basic