2 votes

Simplification des expressions régulières en Perl

Je veux simplifier l'affirmation suivante.

if($_=~/^([0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F])/)

Existe-t-il une autre façon d'écrire la déclaration ci-dessus sans répéter [0-9a-fA-F] n fois ?

10voto

toolic Points 23449

Vous pouvez utiliser Quantificateurs

{n} Correspond exactement n fois

if (/^([0-9a-fA-F]{5})/)

De même, vous pouvez utiliser une classe de caractères POSIX

xdigit Tout chiffre hexadécimal ("[0-9a-fA-F]").

if (/^([[:xdigit:]]{5})/)

5voto

ANisus Points 10898

Essayez ceci

if($_=~/^([0-9a-fA-F]{5})/)

0voto

snoofkin Points 4574

Ou même

if( /^([0-9a-fA-F]{5})/ )

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