我有这个有效的定义:

IDENTIFIER   [a-zA-Z][a-zA-Z0-9]*

我不想继续重复[a-zA-Z]和[0-9],所以我做了两个新的定义

DIGIT    [0-9]
VALID    [a-zA-Z]

如何重写IDENTIFIER规则以使用DIGIT和VALID定义?

我不知道如何做“第二次”匹配,我被困在这里:

IDENTIFIER {VALID}[{VALID}{DIGIT}]* // This syntax is incorrect

感谢。

编辑:我正在使用的整个测试程序: http://pastebin.com/f5b64183f

有帮助吗?

解决方案

看起来你真的想要:

IDENTIFIER {VALID}({VALID} | {DIGIT})*

[{VALID} {DIGIT}]解析为[[A-Za-z] [0-9]],这不是一个合法的构造。

其他提示

我认为这样做但我无法测试。你有样本数据吗?

(?:[A-ZA-Z])+(?:[0-9])+

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top