首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在PEG.js中测试所有替代模式

在PEG.js中测试所有替代模式
EN

Stack Overflow用户
提问于 2016-07-22 22:46:04
回答 1查看 206关注 0票数 1

我想使用PEG.js来识别几种不同格式的数字:

代码语言:javascript
复制
number = integer
/ real
/ (integer/real) '^' (integer/real)
/ (integer/real) '^^' (integer/real)

real = [0-9]+ '.' [0-9]*
/ [0-9]* '.' [0-9]+

integer = [0-9]+

如果备选方案序列中较早的部分匹配,则PEG.js不会寻找备选方案。大多数数字都以整数开头,如果不是,则以实数开头。我如何重写这段代码,以便单独测试每个备选方案?(我对将规则组合成更少的规则不感兴趣。)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-23 01:42:11

首先尝试匹配更具体的表达式(因为规则之间存在重叠,所以您希望PEG首先匹配更具体的表达式,以防止部分匹配):

代码语言:javascript
复制
number = ( real / integer ) '^' ( real / integer )
/  ( real / integer ) '^^' ( real / integer )
/ real
/ integer
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38529348

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档