使用不同换行符分割文本块的Python正则表达式

时间:2013-11-20 22:48:15

标签: python regex

我想解析可以用两个以上\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')而不是正则表达式,但文本可以有任意数量的换行符分隔每个块。我似乎无法获得允许任意数量的换行符的正则表达式。

2 个答案:

答案 0 :(得分:2)

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

您可以通过以下几种方式指定重复:

  • * - 重复前一个元素零次或多次
  • + - 重复上一个元素一次或多次
  • {m,n} - 重复mn次之间的上一个元素,m默认为0(如果未提供),n默认为无限制(实际为65535) ,但这是一个实现细节。)

为了匹配\n重复两次或更多次,您将使用\n{2,}

答案 1 :(得分:0)

re.split("\n\n+",my_text) ......我认为会有用

你也可以

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

这应该没有正则表达式正常工作

相关问题