您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Pyparsing:在结果名称中获取令牌位置

Pyparsing:在结果名称中获取令牌位置

尝试将定位器添加到命令和路径表达式中:

locator = Empty().setParseAction(lambda s,l,t: l)
def locatedExpr(expr):
    return Group(locator("location") + expr("value"))

class Shell(object):
    def __init__(self):
        # Simplified grammar of the command line
        # path command parameters
        #command = Word(alphanums + '_').setResultsName('command')
        command = locatedExpr(Word(alphanums + '_'))('command')
        bookmark = Regex('@([A-Za-z0-9:_.]|-)+')
        pathstd = Regex('([A-Za-z0-9:_.]|-)*' + '/' + '([A-Za-z0-9:_./]|-)*') \
                | '..' | '.'
        #path = (bookmark | pathstd | '*')('path')
        path = locatedExpr(bookmark | pathstd | '*')('path')
        parser = Optional(path) + Optional(command) # + Optional(parameters)
        self.parser = parser

现在,您应该可以访问path.locationpath.value获取路径的位置和匹配的文本,以及命令的路径。

其他 2022/1/1 18:44:34 有401人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶