pegjs正则表达式匹配单词直到找到单词集合中的单词

时间:2016-01-05 21:09:22

标签: javascript regex parsing peg pegjs

我正在为项目使用pegjs解析器生成器,我很难创建一个语法,该语法应该匹配所有单词,直到它不应该匹配的单词集合。作为一个例子,在字符串“门是黄色的”我希望能够匹配所有单词,直到是,告诉pegjs解析器开始解析单词是。我希望解析器打破的单词集合是“is”“has”和“of”。

当前的语法规则如下:

subject "sub" = 
s:[a-zA-Z ]+ { return s.join("").trim()}

如何创建一个前瞻,阻止解析器将我的集合包含在单词中?

(!of|is|has)

1 个答案:

答案 0 :(得分:-1)

这将有效

.+(?=\s+(of|is|has))

它匹配一个或多个任何字符(换行符除外),直到遇到','是'或者'有' (通过积极的向前看)在他们面前有白色空间。