La définition habituelle de la reconnaissance des identifiants en langage de programmation C est donnée par
letter -> a|b|...z|A|B|...|Z|_
digit -> 0|1|...|9
identifier -> letter(letter|digit)*
Cette définition générera des identifiants de la forme
identifiant: [_a-zA-Z][_a-zA-Z0-9]*
Ma question maintenant est de savoir comment limiter la longueur de l'identifiant pouvant être généré à 31 caractères maximum. Quelles modifications doivent être apportées à la définition régulière ou comment écrire une expression régulière pour la limiter à la longueur spécifiée? Quelqu'un pourrait-il s'il vous plaît aider. Merci.
L'expression régulière que vous recherchez est:
[_a-zA-Z][_a-zA-Z0-9]{0,30}
Il correspondra à un trait de soulignement ou lettre suivi de X
traits de soulignement , lettres ou chiffres , où 0 <= X <= 30
{}
est généralement utilisé pour limiter la longueur.
Par exemple, votre expression rationnelle était [a-zA-Z0-9]+
. Autrement dit, autorise toutes les valeurs alphanumériques et la longueur doit être supérieure à égale à 1. Si nous voulons limiter celle-ci à 31 caractères, nous pouvons réécrire la regex comme suit:
[a-zA-Z0-9]{1,31}
{1,31} indique que cela acceptera les valeurs alphanumériques de longueur supérieure à égale à 1 et inférieure à égale à 31.
Vous pouvez apporter des modifications à votre expression rationnelle.