如何寫一個正則表達式在python中使用來拆分段落?Python正則表達式拆分段落
段落由2個換行符(\ n)定義。但是可以將任意數量的空格/製表符與換行符一起使用,並且仍然應該將其視爲段落。
我正在使用Python,所以解決方案可以使用python的regular expression syntax這是擴展。 (可利用(?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
秒。
有。 [^ \ S \ n] :) – 2009-03-05 12:21:29