【发布时间】:2011-04-23 13:02:46
【问题描述】:
虽然这个问题是关于 JFlex 的,但它可能也适用于其他扫描仪生成器,例如 lex、flex。
如果我有一些规则,我如何在该规则的一部分中创建一个捕获组,并将该捕获组的结果用作在规则匹配时调用的代码的参数?
例如,假设我有一个简单的规则来匹配一个 SGML 标签:
"<"[a-zA-Z]+">" {return new Token(Type.OPEN_TAG);}
如何捕获内部字符部分([a-zA-Z]+)并将其用作我的 Token 构造函数中的参数?
编辑:我知道我可以简单地使用 yytext() 来获取整个匹配值,然后在代码中的其他地方分离部分,但这似乎会使事情变得比需要的更复杂。
【问题讨论】:
标签: regex capturing-group jflex