我有以下 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/150
提交
取消