Bonjour,
Voici le cas sur lequel je travaille, je récupère le code source d'une page html contenant plusieurs champs de formulaire, je dois ensuite extraire la valeur de ces champs en ne connaissant que leur nom.
C'est champs peuvent (malheureusement) contenir absolument n'importe quoi dans l'attribut value, même des caractères non affichables tels que les "backspace", "escape" et même des "line feed".
Par exemple:
Pour ce faire j'ai créé le pattern suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <html> <head></head> <body> <input type="hidden" name="Data1" value="Tous les caractères imaginables"> <input type="hidden" name="Data2" value="Tous les caractères imaginables"> <input type="hidden" name="Data3" value="Tous les caractères imaginables"> </body> </html>
objRegExp.Pattern = "<input ([a-z]|[0-9]|[""_\-=])* *name=""" & VariableNom & """ ([a-z]|[0-9]|[""_\-=])* *value=""(.|\n)*"">"
Mais voilà le problème, c'est que peu importe si je demande Data1, Data2 ou Data3 le seul et unique match que ce pattern trouve contient également les champs suivants.
Exemple le match pour Data1 est "<input type="hidden" name="Data1" value="Tous les caractères imaginables">
<input type="hidden" name="Data2" value="Tous les caractères imaginables">
<input type="hidden" name="Data3" value="Tous les caractères imaginables">"
Pour Data2 c'est: "<input type="hidden" name="Data2" value="Tous les caractères imaginables">
<input type="hidden" name="Data3" value="Tous les caractères imaginables">"
J'avais bien pensé trouver ces match, mais j'aurais cru qu'il en trouverais plusieurs, dont le bon (le plus court), que j'aurais alors conservé, mais il ne trouve qu'un match.
Quelqu'un peut m'aider à ce sujet ? Pourquoi ne trouve-il qu'un match ? (.Global est déjà à true) ou alors y a-t-il un problème avec mon pattern ?
Merci beaucoup
Partager