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

surfatao Messages postés 172 Statut Membre -  
[Dal] Messages postés 6122 Date d'inscription   Statut Contributeur Dernière intervention   -
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

  1. KX Messages postés 19031 Statut Modérateur 3 020
     
    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
  2. surfatao Messages postés 172 Statut Membre 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
    1. KX Messages postés 19031 Statut Modérateur 3 020
       
      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
    2. surfatao Messages postés 172 Statut Membre 15
       
      Si, il est valide puisque il est entouré d'un espace et d'une fin de ligne.
      0
    3. surfatao Messages postés 172 Statut Membre 15
       
      le nombre .2BD4f. n'est pas bon puisqu'il est entouré par des points.
      0
    4. KX Messages postés 19031 Statut Modérateur 3 020
       
      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
  3. [Dal] Messages postés 6122 Date d'inscription   Statut Contributeur Dernière intervention   1 108
     
    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