Python 返回带有';或';使用欧芹的语法
我想用欧芹来匹配一个词。我使用的语法只有在我为泛型词制定规则时才有效。然而,我想知道为什么它不能像Allen Short的演示和示例代码所示的那样工作 在他的代码中,他有:Python 返回带有';或';使用欧芹的语法,python,Python,我想用欧芹来匹配一个词。我使用的语法只有在我为泛型词制定规则时才有效。然而,我想知道为什么它不能像Allen Short的演示和示例代码所示的那样工作 在他的代码中,他有: rule = (expr1 -> returnval) | -> [] 但我让它工作的唯一方法是: rule = (expr1 -> returnval) | (expr2) -> [] 这是我的密码: 进口欧芹 语法=r“” myword=“你好” myrule=(myword:word->w
rule = (expr1 -> returnval) | -> []
但我让它工作的唯一方法是:
rule = (expr1 -> returnval) | (expr2) -> []
这是我的密码:
进口欧芹
语法=r“”
myword=“你好”
myrule=(myword:word->word)|->[]
"""
MyPar=parsley.makeGrammar(grammar,{})
打印MyPar(“hello”).myrule()有效,返回myword
打印MyPar(“再见”)。myrule()不起作用,引发异常
我让它工作的唯一方法是使用内置的'letter'变量为通用单词字符串制定规则
进口欧芹
语法=r“”
myword=“你好”
任意字=
myrule=(myword:word->word)| anyword->[]
"""
MyPar=parsley.makeGrammar(grammar,{})
打印MyPar(“hello”).myrule()有效
打印MyPar(“bye”).myrule()有效,返回空列表
任何帮助都将不胜感激。多谢各位
保罗我想你误解了规则应该符合什么
myrule = (myword:word -> word) | -> []
将尝试匹配以下两个选项中的任何一个:
(myword:word->word)
尝试匹配myword
并返回它->[]
尝试匹配nothing(空字符串,不是任何内容),并返回空列表如果你想匹配任何单词,我认为你的第二个代码就是这样做的。FWIW,你所拥有的看起来与你所说的不一样。(括号中包含返回值,而原始值不包含)