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

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. Modérateur
    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
    1. 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. Modérateur
        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. Si, il est valide puisque il est entouré d'un espace et d'une fin de ligne.
        0
      3. le nombre .2BD4f. n'est pas bon puisqu'il est entouré par des points.
        0
      4. Modérateur
        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
    2. Contributeur
      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