6

text 1 のような標準の段落書式 (空白行の後にインデントが続く) を持つテキストがある場合、text.split("\n\n") を使用して段落を簡単に抽出できます。

文1:

      Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus sit amet sapien velit, ac sodales   
 ante. Integer mattis eros non turpis interdum et auctor enim consectetur, etc.

      Praesent molestie suscipit bibendum. Donec justo purus, venenatis eget convallis sed, feugiat    
 vitae velit,etc.

しかし、テキスト 2 のような非標準の段落書式のテキストがある場合はどうすればよいでしょうか? 空白行はなく、先頭の空白は可変です。

テキスト 2:

      Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus sit amet sapien velit, ac sodales   
 ante. Integer mattis eros non turpis interdum et auctor enim consectetur, etc.
    Praesent molestie suscipit bibendum. Donec justo purus, venenatis eget convallis sed, feugiat    
 vitae velit,etc.

先頭の空白は標準形式と非標準形式の両方に共通であるため、先頭の空白の正規表現一致でインデックスを作成し、そのように段落区切りを取得することを考えましたが、これを行うためのよりエレガントな方法が必要です。

4

1 に答える 1

13

あなたが提案する正規表現ソリューションは十分にエレガントに見えます:

re.split('\s{4,}',text)

これは、段落区切り文字として 4 つの連続する空白文字を使用します。'\n\s{3,}'より適している場合は、または同様のものを使用できます。

于 2013-04-10T19:11:15.797 に答える