1
我需要將一系列字符串拆分爲由空格表示的3個組件部分。這些字符串有時包含子列表,但始終作爲字符串的最後一個組件。Python Shlex與括號拆分
我之前使用Shlex取得了巨大成功,但我沒有得到預期的結果,因爲我最近的子列表包含他們自己的空間,而且似乎將Shlex關閉。
是否有替代Shlex的可能更好地執行任務?
是一些例子:
'BREAKFAST IN ["Rolled Oats","Cornflakes","French Toast"]'
和
COPIES_FOR_EXTERNAL > "0"
應該變成像列表:
['BREAKFAST','IN', '["Rolled Oats","Cornflakes","French Toast"]']
和
['COPIES_FOR_EXTERNAL','>','"0"']
shlex做殼狀的解析。你得到的結果是,一個shell將會做什麼(因爲涉及分詞行爲)。也就是說,你想要的行爲遠遠超出其預期的用例和規範。 –
是的,這就是我的想法,雖然在增加複雜性之前它做得很好。我想正則表達式可能是最好的解決方案。 – danspants
個人而言,我傾向於在「構建一個真正的解析器」陣營。當然,這是更多的工作和更多的代碼,但是你從中得到的東西是更加嚴格定義的(並且能夠處理上下文規則變化以及需要在正則表達式中處理hackery的其他異常)。 –