为了账号安全,请及时绑定邮箱和手机立即绑定

为什么使用 dblQuotedString 会更改匹配位置?

为什么使用 dblQuotedString 会更改匹配位置?

30秒到达战场 2023-08-15 18:42:45
我有以下 python 程序:from pyparsing import *#grammar STARTstring_list_item = dblQuotedString | Word(printables.replace(')', ''))cmake_list_content = OneOrMore(string_list_item)variable_name = Word(alphas+"_", alphanums+"_")set_keyword = CaselessLiteral("set")set_normal_variable_stmt = set_keyword + "(" \    + variable_name \        + cmake_list_content + ")" #grammar ENDcmake_source = "set(TabsPls_Sources Main.cpp)"string_list_item.setDebug()set_normal_variable_stmt.parseString(cmake_source)这给出了“Main.cpp”的以下输出:Match {string enclosed in double quotes | W:(0123...)} at loc 19(1,20)Matched {string enclosed in double quotes | W:(0123...)} -> ['Main.cpp']但是当我从第一行删除 dblQuotedString 时:Match W:(0123...) at loc 20(1,21)Matched W:(0123...) -> ['Main.cpp']为什么会发生这种情况?输入中没有任何双引号字符串,那么为什么匹配位置会发生变化?
查看完整描述

目前暂无任何回答

  • 0 回答
  • 0 关注
  • 107 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信