2013-11-20 22 views
-1

我想分析可以被兩個以上的\n字符分隔的文本塊(不是段落)。例如:蟒蛇正則表達式以不同的換行符分隔的文本塊

 
Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
Morbi quam nunc, pretium quis tincidunt in, tincidunt vel arcu. 
Class aptent taciti sociosqu ad litora torquent per conubia nostra. 

Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
Morbi quam nunc, pretium quis tincidunt in, tincidunt vel arcu. 
Class aptent taciti sociosqu ad litora torquent per conubia nostra. 


Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
Morbi quam nunc, pretium quis tincidunt in, tincidunt vel arcu. 
Class aptent taciti sociosqu ad litora torquent per conubia nostra. 

第一嵌段是由\n\n分離,但在第二和第三塊由\n\n\n分離。我只想使用string.split(r'\n\n')而不是正則表達式,但文本可以有任意數量的換行符分隔每個塊。我似乎無法得到允許任何數量的換行符的正則表達式。

+0

沒有評論downvotes!好極了! – Randy

回答

2
import re 
re.split(r'\n{2,}', string) 

可以在幾個指定重複方法:

  • * - 重複前面的元素零次或多次
  • + - 重複前面的元件的一個或多個次
  • {m,n} - 重複前面的元件之間mn倍,m默認爲0,如果未提供,n默認爲無限(實際上是65535,但這是一個實現細節)。

因此要匹配\n重複兩次或更多次,您將使用\n{2,}

0

re.split("\n\n+",my_text) ......我想會的工作

你也可以做

map(lambda x:x.strip(),my_string.split("\n\n")) 

,並應做工精細沒有一個正則表達式

+0

只需使用'+'即可捕獲一個或多個,我需要兩個或更多個。 – Randy

+0

我把它修好了...... –