我開始用正則表達式進行冒險。 我感興趣的是分割特殊格式的字符串。如果一個字母不在括號內,它應該成爲輸出列表的一個不同元素。括在括號內的字母應放在一起。如何用re.split分割我的字符串?
樣品:
我的字符串=>通緝名單
"ab(hpl)x"
=>['a', 'b', 'hpl', 'x']
"(pck)(kx)(sd)"
=>['pck', 'kx', 'sd']
"(kx)kxx(kd)"
=>['kx', 'k', 'x', 'x', 'kd']
"fghk"
=>['f', 'g', 'h', 'k']
如何用正則表達式和re.split
來實現? 在此先感謝您的幫助。
@Maciej Ziarko:請注意,使用''\ w''並且沒有後向斷言的答案假設括號總是平衡的,並且您的數據中永遠不會有數字和下劃線。鑑於您的測試數據,這是一個公平的假設,所以+1。 – 2011-03-17 19:29:08
是的,它們將始終保持平衡。我的數據中的任何其他字符都是小寫字母。我喜歡你的答案,我把它們投了票。順便說一句:你可以推薦任何好的正則表達式教程/書有很好的例子嗎? – 2011-03-17 19:36:37
我主要使用http://www.regular-expressions.info/進行學習,而http://www.rubular.com/對於正則表達式的快速測試非常有用。 – 2011-03-17 19:40:45