我正试图找出如何使用这个漂亮的库来解析BigIP配置文件。。。 语法应该是这样的:
stanza :: name { content }
name :: several words, might contain alphas nums dot dash underscore or slash
content:: stanza OR ZeroOrMore(printable characters)
为了让事情稍微复杂一点,有一个例外:
如果名称以“rule”开头,则内容不能为“stanza”
我从这个开始:
^{pr2}$上面的代码似乎锁定在某个无限循环中。如果“name”以“rule”开头,那么它也缺少了排除查找“stanza”的要求。在
OneOrMore(ZeroOrMore(OneOrMore(Word(printables)))将始终匹配,从而导致无限循环。在
另外,printables还包括一个右大括号,它被内容项使用,不再适用于节。(如果您的内容可以包含右括号,则需要定义对其进行转义的内容,以区分内容括号和节括号。)
要处理名称规则,您需要另一个内容定义,一个不包括节的内容定义和一个“规则规则”。在
相关问题 更多 >
编程相关推荐