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