如何编写一个正则表达式在python中使用来分割段落?
段落由2个换行符(\n)定义.但是,可以将任意数量的空格/制表符与换行符一起使用,并且它仍应被视为段落.
我正在使用python,因此解决方案可以使用扩展的python的正则表达式语法.(可以利用(?P...)
东西)
the_str = 'paragraph1\n\nparagraph2' # splitting should yield ['paragraph1', 'paragraph2'] the_str = 'p1\n\t\np2\t\n\tstill p2\t \n \n\tp3' # should yield ['p1', 'p2\t\n\tstill p2', 'p3'] the_str = 'p1\n\n\n\tp2' # should yield ['p1', '\n\tp2']
我能得到的最好的是:r'[ \t\r\f\v]*\n[ \t\r\f\v]*\n[ \t\r\f\v]*'
,即
import re paragraphs = re.split(r'[ \t\r\f\v]*\n[ \t\r\f\v]*\n[ \t\r\f\v]*', the_str)
但那很难看.还有什么更好的?
编辑:
建议被拒绝:r'\s*?\n\s*?\n\s*?'
- >这会使示例2和3失败,因为\s
包含\n
,所以它允许段落中断超过2 \n
秒.