regex - online - Representando identificadores usando expresiones regulares
regex replace (2)
La definición regular para reconocer identificadores en lenguaje de programación C es dada por
letter -> a|b|...z|A|B|...|Z|_
digit -> 0|1|...|9
identifier -> letter(letter|digit)*
Esta definición generará identificadores de la forma.
identificador: [_a-zA-Z][_a-zA-Z0-9]*
Mi pregunta ahora es cómo limitar la longitud del identificador que se puede generar a no más de 31 caracteres. Qué cambios deben realizarse en la definición regular o cómo escribir una expresión regular para limitarla a no más de la longitud especificada. ¿Alguien podría por favor ayudar? Gracias.
La expresión regular que estás buscando es:
[_a-zA-Z][_a-zA-Z0-9]{0,30}
Coincidirá con un guión bajo o una letra después de X
, guiones bajos o letras , donde 0 <= X <= 30
Para limitar la longitud, usualmente se usan {}
.
Por ejemplo, su expresión regular fue [a-zA-Z0-9]+
. Significa, permite cualquier valor alfanumérico, y la longitud debe ser mayor que igual a 1. Si queremos limitarlo para que no exceda los 31 caracteres, podemos reescribir la expresión regular como:
[a-zA-Z0-9]{1,31}
{1,31} indica que esto aceptará valores alfanuméricos de longitud mayor que igual a 1 y menor que igual a 31.
Puede hacer los cambios respectivos a su expresión regular.