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*?'
\s
-> includesであるため、例 2 と 3 は失敗する\n
ため、2 を超える段落区切りが許可され\n
ます。