使用正则表达式表示标识符

Jer*_*lan 18 regex computer-science regular-language

用C语言识别标识符的常规定义由下式给出

letter -> a|b|...z|A|B|...|Z|_
digit -> 0|1|...|9
identifier -> letter(letter|digit)*
Run Code Online (Sandbox Code Playgroud)

该定义将生成表单的标识符

标识: [_a-zA-Z][_a-zA-Z0-9]*

我现在的问题是如何将生成的标识符的长度限制为不超过31个字符.需要在常规定义中进行哪些更改,或者如何编写正则表达式以将其限制为不超过指定的长度.有谁可以帮忙.谢谢.

Osc*_*ros 25

您正在寻找的正则表达式是:

[_a-zA-Z][_a-zA-Z0-9]{0,30}
Run Code Online (Sandbox Code Playgroud)

它将匹配一个下划线字母按照X 下划线,字母数字,其中0 <= X <= 30