Aide pour un regex [Résolu]

Signaler
Messages postés
22
Date d'inscription
mercredi 24 octobre 2007
Statut
Membre
Dernière intervention
1 décembre 2009
-
Messages postés
22
Date d'inscription
mercredi 24 octobre 2007
Statut
Membre
Dernière intervention
1 décembre 2009
-
Bonjour !
Y aurait il une âme charitable pour me donner un coup de main pour un regex ?
ligne :
!browse http://www.google.com 80 200 100
J'aimerai isoler les 4 variables Host, Port, int1, int2 et int3
J'ai vraiment du mal à comprendre les regex, donc si quelqu'un peut m'aider ça serait sympa ^^

9 réponses

Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
67
le plus simple :

!browse (\S+) (\d+) (\d+) (\d+)

Renfield - Admin CodeS-SourceS - MVP Visual Basic
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
28
Regardes mon source de mon premier post.

(?\S+)

--> matches["adresse"].Value
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
28
Salut,

Il y a pas que 3 numeriques dans ton expression.

Merci de mettre tout tes cas d'utilisation dans ton post.

Aide toi de http://regex.codes-sources.com/codes/UTILISATION-REGEXP-LIRE-FLUX-RSS_49800.aspx pour faire un début de regexp.

Avec les captures du devrait y arriver.
Messages postés
22
Date d'inscription
mercredi 24 octobre 2007
Statut
Membre
Dernière intervention
1 décembre 2009

Les différents cas d'utilisation :
!browse http://www.google.com 80 200 100
!browse 127.0.0.1 80 200 100

en gros ca sera !browse (URL ou IP) Port Durée Timeout
Messages postés
22
Date d'inscription
mercredi 24 octobre 2007
Statut
Membre
Dernière intervention
1 décembre 2009

merci bien pour le coup de main !
Messages postés
22
Date d'inscription
mercredi 24 octobre 2007
Statut
Membre
Dernière intervention
1 décembre 2009

Par contre, pour isoler les variables que je reçois je fais comment ?
Ca doit être du style :

static void Main(string[] args)
{
string inputline = "!browse http://www.google.com 80 200 1";
Regex regex = new Regex(@"!browse (\S+) (\d+) (\d+) (\d+)");
string input = inputline;
MatchCollection matches = regex.Matches(input);
for (int i = 0; i != matches.Count; ++i)
{
Console.WriteLine("arg " + matches[i].Value);
Console.ReadLine();
}

}
Messages postés
22
Date d'inscription
mercredi 24 octobre 2007
Statut
Membre
Dernière intervention
1 décembre 2009

Merci je comprend un peu mieux maintenant ! Mais dans l'exemple que tu m'as donné le regex été tellement long que ça m'a donné mal à la tête lol
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
28
Désolé pour l'exemple un peu long ;-)
Mais j'avais plus un cas d'utilisation.
mais le parsing d'un fichier de log aurait été plus explicite ;-)
Messages postés
22
Date d'inscription
mercredi 24 octobre 2007
Statut
Membre
Dernière intervention
1 décembre 2009

La c'est bon ça fonctionne nikel, merci encore