Javascript pegjs正则表达式匹配单词,直到从单词集合中找到一个单词为止

Javascript pegjs正则表达式匹配单词,直到从单词集合中找到一个单词为止,javascript,regex,parsing,peg,pegjs,Javascript,Regex,Parsing,Peg,Pegjs,我正在为一个项目使用pegjs解析器生成器,我很难创建一个语法来匹配所有的单词,直到一个不匹配的单词集合。作为字符串“thedoorisyellow”中的一个例子,我希望能够匹配所有单词,直到is,告诉pegjs解析器从单词is开始解析。我希望解析器打断的单词集合是“is”、“has”和“of” 目前的语法规则如下: subject "sub" = s:[a-zA-Z ]+ { return s.join("").trim()} 我怎样才能创建一个前瞻,阻止解析器在单词上包含我的集合 (!o

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

目前的语法规则如下:

subject "sub" = 
s:[a-zA-Z ]+ { return s.join("").trim()}
我怎样才能创建一个前瞻,阻止解析器在单词上包含我的集合

(!of|is|has)
这会奏效的

.+(?=\s+(of|is|has))
它匹配一个或多个字符(换行符除外),直到遇到前面有空格的“of”、“is”或“has”