2017-05-14 65 views
0

使用Python,我需要解析的文件結構如下:解析與正確的括號,正則表達式?

((Lorem) ipsum dolor sit amet) 
(consectetur adipiscing elit.)(Etiam 
suscipit 
pulvinar congue.) 
((Vivamus) eu faucibus enim.) 

結果需要與所有的括號中的內容列表,即

[ 
    '(Lorem) ipsum dolor sit amet', 
    'consectetur adipiscing elit.', 
    'Etiam\nsuscipit\npulvinar congue.', 
    '(Vivamus) eu faucibus enim.' 
] 

由於括號可以嵌套,也許正則表達式不是我正在尋找的工具。

任何提示?

回答

0

我想我會用我自己的代碼這一點。我距離Python專家很遠,所以也許我的解決方案不是普通的Python方法。最初將一個計數器設置爲0.然後逐字符字符串char。如果當前字符等於'('增加一個計數器,如果等於')'則減少計數器。如果您的計數器在減少後爲0,則您有下一個列表條目。如果你的計數器低於零,你有錯誤。就像如果下一個列表條目不以「(」開始,但是這取決於你想要什麼。這應該是實現非常簡單。

0

所有你需要的是一個棧來實現這一點。 ALGO

  1. 開始解析推繩子的一切(除了閉架)到堆棧。
  2. 正如你看到的,你要推右括號開始從堆棧空間PoPing元素,直到你得到一個開括號。所以從閉架到這是你的列表元素,直到你解析完整的字符串爲止

或者你可以做反向(開始分析從端線和推動一切除了左括號)

僅供參考看看這個帖子interactivepython.org/runestone/static/pythonds/BasicaDS/InfixPrefixandPostfixExpressions.html

後綴前綴的方法一般用於評估表達式。