物理行で


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

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

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

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

回答の条件
  • 1人2回まで
  • 登録:2009/04/17 09:42:06
  • 終了:2009/04/24 09:45:02

回答(2件)

id:y-kawaz No.1

y-kawaz回答回数1420ベストアンサー獲得回数2252009/04/17 10:41:29

ポイント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

ふるるP回答回数192ベストアンサー獲得回数212009/04/17 11:19:59

ポイント35pt

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

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

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

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

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

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

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません