用C语言识别标识符的常规定义由
给出letter -> a|b|...z|A|B|...|Z|_
digit -> 0|1|...|9
identifier -> letter(letter|digit)*
此定义将生成表单
的标识符标识符:[_a-zA-Z][_a-zA-Z0-9]*
我现在的问题是如何将生成的标识符的长度限制为不超过31个字符。需要在常规定义中进行哪些更改,或者如何编写正则表达式以将其限制为不超过指定的长度。有谁可以帮忙。感谢。
答案 0 :(得分:24)
您正在寻找的正则表达式是:
[_a-zA-Z][_a-zA-Z0-9]{0,30}
它将匹配下划线或字母以下X
下划线,字母或< em>数字,其中0 <= X <= 30
答案 1 :(得分:0)
要限制长度,通常会使用{}
例如,您的正则表达式为[a-zA-Z0-9]+
。意味着,允许任何字母数字值,并且长度必须大于等于1.如果我们想限制它不超过31个字符,我们可以将正则表达式重写为:
[a-zA-Z0-9]{1,31}
{1,31}表示这将接受长度大于等于1且小于等于31的字母数字值。
您可以对正则表达式进行相应的更改。