2012-01-21 56 views
0

所以我有一個列表的輸入,像這樣的元素:分割列表項成到位兩項與正則表達式

「2008年建設改造重鋪& 修街道的&道路歷年」

我正在遍歷列表。對於每次迭代,首先我要驗證模式INTspacespacefor是字符串中,我知道我可以做:

re.search('\\d+\s\sfor',string) 

一旦我證實的要素之一的比賽,我想拆將這個元素分解爲INT和「for」之間的兩個元素。是否有捷徑可尋?

因此,對於這個樣本輸出是:

[item1,item2,...item10,"calendar year 2008","for construction reconstruction resurfacing & repair of streets & roads",item11,item12...] 
+1

的OP採用雙層空間寫的例子短語,但格式化工具廢除跟他們。 –

回答

3

您可以使用向後看和向前看

re.split('(?<=\d)\s\s(?=for)',string) 
+0

不錯!看起來像我需要更深入的理解正則表達式。 – Oliver

+1

@Oliver這裏有一個很好的預覽和背後的手冊:http://www.regular-expressions.info/lookaround.html –