Python pyparsing 模块,Charsnotin() 实例源码
我们从Python开源项目中,提取了以下2个代码示例,用于说明如何使用pyparsing.Charsnotin()。
def parse_format(format):
deFinition = []
# define pattern grammar
variable_ptn = pp.QuotedString("{", endQuoteChar="}")("variable")
escape_open_ptn = pp.Literal("{{")("escape_open")
escape_close_ptn = pp.Literal("}}")("escape_close")
escape_ptn = escape_open_ptn | escape_close_ptn
literal_ptn = pp.Charsnotin("{}")("literal")
element_ptn = escape_ptn | variable_ptn | literal_ptn
for toks, start, end in element_ptn.leaveWhitespace().scanString(format):
try:
deFinition.append({
"literal": lambda: Literal(toks[0]),
"variable": lambda: Variable.create(toks[0]),
"escape_open": lambda: OpenBrace(),
"escape_close": lambda: CloseBrace(),
}[toks.items()[0][0]]())
except KeyError:
raise FormatStringError
return deFinition
def __init__(self, rule):
self.rule = rule
self.opener = self.rule['opener']
self.closer = self.rule['closer']
self.columns = self.rule.get('columns', -1)
nested = nestedExpr(opener=self.opener, closer=self.closer,
content=Charsnotin(self.opener + self.closer))
if self.columns < 0:
self.nested = OneOrMore(nested)
else:
self.nested = nested * self.columns + Or([Charsnotin('\n'), Empty()])
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。