151 votes

Expression régulière pour un nombre hexadécimal?

Comment puis-je créer une expression régulière qui détecte les nombres hexadécimaux dans un texte ?

Par exemple, '0x0f4', '0acdadecf822eeff32aca5830e438cb54aa722e3', et '8BADF00D'.

2 votes

Regex ne parse pas vraiment. Essayez d'extraire tout ce qui ressemble à un nombre et de filtrer ceux qui ne sont pas des hexadécimaux.

7voto

joachim Points 1924

Si vous utilisez Perl ou PHP, vous pouvez remplacer

[0-9a-fA-F]

avec:

[[:xdigit:]]

0 votes

Cela devrait être une réponse autonome.

0 votes

Déjà couvert par cette réponse de 2014.

5voto

batspy Points 375

Juste pour la record, je spécifierais ce qui suit:

/^[xX]?[0-9a-fA-F]{6}$/

Qui diffère en ce sens qu'il vérifie qu'il doit contenir les six caractères valides et un 'x' en minuscule ou majuscule au cas où nous en avons un.

3voto

Fábio Borges Points 31

Si vous recherchez un caractère hexadécimal spécifique au milieu de la chaîne, vous pouvez utiliser "\xhh" où hh est le caractère en hexadécimal. J'ai essayé et ça fonctionne. J'utilise le framework pour C++ Qt mais cela peut résoudre des problèmes dans d'autres cas, selon le langage que vous devez utiliser (php, javascript, python, golang, etc.).

Cette réponse a été tirée de : http://ult-tex.net/info/perl/

0 votes

Hé! Bien que cela puisse être vrai pour perl, cela ne semble pas être le cas pour les Expressions Régulières dans tous les langages de programmation. Selon ce lien \x est l'équivalent de \u dans d'autres langages.

0 votes

Qu'est-ce que "especific anda"?

3voto

Tommy Vasquez Points 11

Un autre exemple : Les valeurs hexadécimales pour les couleurs css commencent par un dièse (#), suivi de six caractères qui peuvent être soit un chiffre ou une lettre entre A et F, inclusivement.

^#[0-9a-fA-F]{6}

1voto

Local Needs Points 176

Celui-ci s'assure que vous n'avez pas plus de trois paires valides:

(([a-fA-F]|[0-9]){2}){3}

Plus ou moins de trois paires de caractères valides échouent à correspondre.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X