Bonjour,

Je cherche à construire une Regex pour valider et capturer des éléments d'une chaîne de caractères.

La chaîne est de la forme :

announce listen $Port seed [$Filename1 $Length1 $PieceSize1 $Key1 $Filename2 $Length2 $PieceSize2 $Key2
...] leech [$Key3 $Key4 ...]
Ce que je voudrais faire c'est valider la chaîne en s'assurant que $Port est un entier et que $Filename une String $Piece un entier $PieceSize un entier et $key une String. Je dois aussi m'assurer qu'il ne maque pas d'information (par exemple qu'une clé d'un fichier ou sa taille sois manquante). Le problème que j'ai se situe au niveau du groupement.

j'ai essayé beaucoup de regex comme celle-ci:

^announce listen ([0-9]+) seed \\[(\\S+ [0-9]+ [0-9]+ \\S+ ?)*\\] leech \\[(\\S+ ?)*\\]$

Je n'arrive pas a bien délimiter le groupement avec l'espace pour avoir l'information correcte.

j'aimerai récupérer les informations du seed 4 par 4 pour pouvoir identifier un fichier et celle du leech une par une.

Je vous remercie pour votre lecture.