[REGEX] Séparée d'espaces ou rien

Fermé
surfatao Messages postés 161 Date d'inscription mardi 9 juin 2009 Statut Membre Dernière intervention 11 février 2013 - 13 nov. 2012 à 15:16
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 - 14 nov. 2012 à 13:03
Bonjour,

Je dois rechercher des nombres hexadécimaux séparés par des espaces ou rien (début ou fin de ligne)

Par exemple:
4444
Aaa4
Un nombre hexadecimal : AE456
sdqsdq4Eezz
bisous 


Je sais qu'un hexadécimal c'est [0-9a-fA-F]+ mais après je n'arrive pas à trouver ce qu'il manque. Pouvez-vous m'aider?

Merci d'avance :)

3 réponses

KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
13 nov. 2012 à 15:43
Le début de ligne c'est ^ et la fin de ligne $
Il te manque donc plus qu'à mettre l'espace et ça doit être bon :

^[ 0-9A-Fa-f]+$
0
surfatao Messages postés 161 Date d'inscription mardi 9 juin 2009 Statut Membre Dernière intervention 11 février 2013 15
Modifié par surfatao le 13/11/2012 à 16:15
Oui mais justement, je les mets où les espaces?
Parce que du coup avec ta solution, cette ligne n'est pas bonne.
Un nombre hexadecimal : AE456

Je veux cette syntaxe:

((début de ligne) ou (espace)) >> mon héxa >> ((espace) ou (fin de ligne))
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
13 nov. 2012 à 16:21
Si j'ai bien compris ce que tu voulais seules les lignes composées de chiffres hexadécimaux ou d'espaces sont acceptés. Donc ta ligne qui commence par "Un nombre hexadecimal : " n'est pas valide, en revanche si tu considères "AE456" tout seul c'est tout à fait valide.

Un nombre hexadecimal : AE456 // non valide
AE456 // valide
A E4 56 // valide
0
surfatao Messages postés 161 Date d'inscription mardi 9 juin 2009 Statut Membre Dernière intervention 11 février 2013 15
13 nov. 2012 à 16:48
Si, il est valide puisque il est entouré d'un espace et d'une fin de ligne.
0
surfatao Messages postés 161 Date d'inscription mardi 9 juin 2009 Statut Membre Dernière intervention 11 février 2013 15
13 nov. 2012 à 16:49
le nombre .2BD4f. n'est pas bon puisqu'il est entouré par des points.
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
13 nov. 2012 à 17:22
Je ne suis pas super doué en Regex, je pensais à un truc comme ça :

[ ^]([0-9A-Fa-f]+)[ $]
Mais de toute évidence ça ne fonctionne pas, alors j'ai du l'éclater :

^([0-9A-Fa-f]+)$|^([0-9A-Fa-f]+) | ([0-9A-Fa-f]+) | ([0-9A-Fa-f]+)$
0
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
14 nov. 2012 à 13:03
Salut surfatao,


Si tu utilises des regexp compatibles Perl, tu dois utiliser les références arrières et avant pour faire cela :

(?<=\s)([a-fA-F0-9]+)(?=\s)

Dal
0