2

単純なテキストのみを含むバッファーに 2 つの段落があります。

段落1

パラグラフ 2

各段落の最初の文字の最初の文字から最後の単語になるまで読み取り、配列に格納する必要があります。これは、段落ごとに行う必要があります。追加のマークアップ タグがない場合、どのように段落を識別できますか? これが不可能な場合、各段落の後に Enter キーを 2 回押すようにユーザーに依頼した場合、これらを識別してテキストを再度分割するにはどうすればよいですか? 正規表現を試しましたが、うまくいきません。

4

2 に答える 2

1

elisp の他の初心者が問題を抱えていた場合: 以下のように while を使用してテキストを分割する方法を見つけました。

 (while (re-search-forward "[ \n][ \n]$" nil t)
 ..... ..... .......
 )

しかし、ループ中に配列に入れる方法についてはまだわかりません。

于 2012-08-05T15:12:59.490 に答える
1

これを行う1つの方法は次のとおりです。

(let ((input-text "this is a sample paragraph.
this is another paragraph"))
  (apply #'vector (split-string input-text "\n")))

split-string は、分割する正規表現に基づいてテキストを分割する簡単な方法です。

結果のリストを配列に変換するには、配列に渡されるパラメーターを作成する関数「vector」を使用します。リスト自体ではなく、リストの内容をその関数に渡すために、'apply' を使用します。

于 2012-08-05T16:41:21.790 に答える