2011-01-19 165 views
1

我已格式化的文本行選擇文本字符串,即正則表達式在Python

[[item1 *,* {_item2*} *;{item3*}* ;{item4*}*]] 

其中*表示該字詞和括號之間的任何文本。 是否可以從*到變量收集文本?

item1, after1, before2, item2, after2, item3, after3, item4, after4, afterall = re. ??? 
+0

請提供關於「格式化文本」的詳細說明,最好是一些真實世界的例子,以便我們可以試用它們。 – 2011-01-19 05:22:42

回答

1

你應該可以用正則表達式來做到這一點。

http://docs.python.org/library/re.html

你可以把周圍的表達的部分以後要拔出括號。

您是想抓住*零件還是零件?如果你試圖抓住*部分,它應該不會太難。

import re 

reg = r'\[\[item1 (.*),(.*) {_item2(.*)} (.*);{item3(.*)}(.*) ;{item4(.*)}(.*)\]\]' 
match = re.match(reg, text) 
# You grab items by index. Starting from 1, 0 is the entire match 
item1 = match.group(1) 
item2 = match.group(2) 

你可能需要玩一下它來匹配你想要的東西。