我有以下 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']但是當(dāng)我從第一行刪除 dblQuotedString 時(shí):Match W:(0123...) at loc 20(1,21)Matched W:(0123...) -> ['Main.cpp']為什么會(huì)發(fā)生這種情況?輸入中沒(méi)有任何雙引號(hào)字符串,那么為什么匹配位置會(huì)發(fā)生變化?
為什么使用 dblQuotedString 會(huì)更改匹配位置?
30秒到達(dá)戰(zhàn)場(chǎng)
2023-08-15 18:42:45