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

标签 regex computer-science regular-language

用于识别C编程语言中的标识符的常规定义为

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

该定义将生成以下形式的标识符

标识符:[_a-zA-Z][_a-zA-Z0-9]*
现在我的问题是如何将可生成的标识符的长度限制为不超过31个字符。需要对正则定义进行哪些更改,或者如何编写正则表达式以将其限制为不超过指定长度。谁能帮忙。谢谢。

最佳答案

您要查找的正则表达式为:

[_a-zA-Z][_a-zA-Z0-9]{0,30}

它将匹配下划线或字母,后跟X下划线,字母或数字,其中0 <= X <= 30

关于regex - 使用正则表达式表示标识符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14953861/

相关文章:

c - 更好的链表编程实践

python - 您将如何解决这个 GPS/定位问题并对其进行扩展?您会使用数据库吗? R树?

python - 在python中使用正则表达式来搜索 float ,并用字符串中降低的 float 替换它们?

java - 创建简单递归函数的递归方程

Java:正则表达式制表符在行首不起作用

regular-language - 0转PDA的语言与常规语言一致吗?

theory - 两种具有不同字母的语言的交集是什么?

c - 使用正则表达式在两个字符串之间匹配多个字符串

用于编写正则表达式的 Java API

php - 复杂的正则表达式替换