expression reguliere - Divers - Programmation
Marsh Posté le 03-12-2008 à 22:46:01
Un outil bien sympa pour les regexp type "prise de tête": http://weitz.de/files/regex-coach.exe
Je n'ai pas compris si tu voulais récupérer tout le nom, ou ce qui précède le '_' ou ce qui le suit.
Pour moi le caractère underscore est un caractère comme un autre.
Pourquoi utilises-tu de l'hexa pour l'espace et le ':' ?
A+
Marsh Posté le 04-12-2008 à 09:21:24
Cette expression régulière est le test d'une règle Snort.
Il teste tout le nom, 'Host: ' compris.
Mais avec l'expression régulière de base qu'il y a dans la règle, il ne supporte pas l'underscore.
L'underscore n'est pas une lettre (a-z), ni un chiffre (0-9), c'est surement pour ça que je dois le rajouter (\_), non?!
Je ne sais pas trop pourquoi le ':' est en hexa.
Marsh Posté le 04-12-2008 à 19:54:10
Un truc simple:
^Host: [a-z0-9]+_[a-z0-9]+\.[a-z0-9]+\.[a-z0-9]+-[a-z0-9]+\.[a-z0-9]+
Le circonflexe est évidemment le carret américain (ALTGR-9) et on admet que tous les noms sont en minuscule + chiffres et qu'ils existent .
A+
Marsh Posté le 04-12-2008 à 21:45:35
Pour parser une adresse de mail, la regexp est bien connue:
(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*" )@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])
Donc si on vire la partie a gauche du @ on a l'expression reguliere pour parser un hote:
(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])
Après, a toi de faire ce qu'il faut pour ce que tu as en plus sur ta ligne avant et apres (^Host: etc)
Notes que si tu en veux une plus simple, qui accepte les _, celle ci est pas parfaite, mais pas mal:
([\w-]+\.)+[\w-]{2,4}
A+,
Marsh Posté le 04-12-2008 à 22:55:49
gilou a écrit : (?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*" )@(??:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(??:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\]) |
Mensonge, la regexp pour parser les adresses mail est
(?:(?:\r\n)?[ \t])*(?:(?:(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t] |
Marsh Posté le 05-12-2008 à 02:23:07
Je l'avais aussi sous le coude, mais elle est trop moche avec le word wrapping a mon ecran, alors je ne l'ai pas mise.
A+,
Marsh Posté le 03-12-2008 à 11:53:10
Bonjour,
J'ai une expression régulière sur l'adresse d'un hôte.
Voila l'expression régulière :
la chaine de caractères vérifié est du type :
Apparemment il n'aime pas mon ' _ ' ...?!
Si je le rajoute dans la classe de caractère à droite de l'étoile, ça passe! Et la chaine de caractère spécifiant l'hôte est alors valide...
Y aurait il quelqu'un pour m'expliquer ça?
tom