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

Signaler
Messages postés
162
Date d'inscription
mardi 9 juin 2009
Statut
Membre
Dernière intervention
11 février 2013
-
Messages postés
5394
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
31 juillet 2020
-
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

Messages postés
15974
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
6 août 2020
2 648
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]+$
Messages postés
162
Date d'inscription
mardi 9 juin 2009
Statut
Membre
Dernière intervention
11 février 2013
13
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))
Messages postés
15974
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
6 août 2020
2 648
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
Messages postés
162
Date d'inscription
mardi 9 juin 2009
Statut
Membre
Dernière intervention
11 février 2013
13
Si, il est valide puisque il est entouré d'un espace et d'une fin de ligne.
Messages postés
162
Date d'inscription
mardi 9 juin 2009
Statut
Membre
Dernière intervention
11 février 2013
13
le nombre .2BD4f. n'est pas bon puisqu'il est entouré par des points.
Messages postés
15974
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
6 août 2020
2 648
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]+)$
Messages postés
5394
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
31 juillet 2020
891
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