首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数组中的PEG.js匹配字

数组中的PEG.js匹配字
EN

Stack Overflow用户
提问于 2017-07-03 12:50:52
回答 1查看 223关注 0票数 2

我对PEG.js和匹配词有问题。

它看起来是这样的:Words = "stack"/"overflow"/"stackoverflow" --当我试图匹配“堆栈溢出”时,它会显示错误Expected end of input but "o" found.,因此它找到了stack并认为它是end -- overflow被留下了。

您可以在这里试用:https://pegjs.org/online和粘贴:

Text = Word Word = "stack"/"overflow"/"stackoverflow"并尝试使用单词“堆栈溢出”

我不习惯逐字逐句地换词。

诚挚的问候。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-03 12:55:06

PegJS试图匹配第一个值。只有当它不成功的时候,它才会尝试第二个,以此类推。在您的示例中,可以匹配stack,因此它将不再试图匹配其他任何内容。

当一个匹配项是另一个匹配项的前缀时,这个问题将经常出现。在这种情况下,您应该以“更长”的术语开始列表,并将前缀放在末尾:

代码语言:javascript
复制
Text = Word
Word = "stackoverflow"/"stack"/"overflow"

您还可以匹配多个单词。在本例中,stackoverflow都将得到匹配,但stackoverflow不会匹配。

代码语言:javascript
复制
Text = Word*
Word = "stack"/"overflow"/"stackoverflow"
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44886088

复制
相关文章

相似问题

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