物理行で


this is <改行記号>
a pen. I have <改行記号>
a book.

となっているテキストファイルを論理行に

this is a pen. <改行記号>
I have a book.

と整形するにはどうしたらよいでしょうか。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2009/04/24 09:45:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:y-kawaz No.1

回答回数1422ベストアンサー獲得回数226

ポイント35pt

まず「<0個以上の空白><改行記号>」を全て「1個の空白」に置換して、

次にピリオド(.)を全て「ピリオド(.)<改行記号>」に置換すれば良いんじゃないでしょうか。

環境が書いてありませんが、

perl なら

$str =~ s/[ \t]*[\r\n]/ /g;
$str =~ s/\./.\n/g;

php なら

<?php
$str = preg_replace('/[ \t]*[\r\n]/', ' ', $str);
$str = preg_replace('/\./', ".\n", $str);
?>

メモ帳やワードでは改行文字の検索や置換は出来ないみたいですね…。

例えば秀丸エディタなら置換ダイアログで正規表現にチェックをした状態で、検索に「[ \t]*[\r\n]」置換に「 」を入力して全置換を実行。もう一度置換ダイアログを開いて検索に「\.」置換に「\n」を入力して全置換。

とかで出来ると思います。

id:frkw2004 No.2

回答回数194ベストアンサー獲得回数21

ポイント35pt

<改行記号>を全て削除してからピリオドを「ピリオド+<改行記号>」に変換すればよさそうです。

最後の行の末尾につく<改行記号>が不要であれば、変換後に削除すればいいかと。

  • id:ootatmt
    プログラミング言語は何を希望されますか?
  • id:standard_one
    多分ですけど「ピリオドでない行末かつ行末に空白がない場合は行末に空白を追加してから」って条件もニョキニョキ生えてくると思いますよ。
  • id:ootatmt
    一旦すべての改行を削除して、ピリオドの後に改行を挿入するだけでいいんじゃない?

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません