プロが教えるわが家の防犯対策術!

文章の頭と終わりにある文字を入れたいのですが、正規表現で出来るでしょうか?

例えば・・・

==================================
今日はいい天気ですね。
明日は雨が降るらしいですよ。

では、またお会いしましょう。
==================================

このような文章があるとします。
それを正規表現を使って以下のようにしたいです。

==================================

いつも元気な山田太郎です。

今日はいい天気ですね。
明日は雨が降るらしいですよ。

では、またお会いしましょう。

山田太郎でした。

==================================

このように文章の初めと終わりにある文章を入れたいのですが、やり方が分かりません。
どなたか教えていただけないでしょうか?
よろしくお願いします。

A 回答 (5件)

> 複数行置換 ver.1.41


これで試してみました。

【先頭に文字を突っ込む方法】
「正規表現を使用」にチェック
「単一行モード」にチェック

置換前文字列
^

置換後文字列
いつも元気な山田太郎です。



文字の後に2回改行しとく

【末尾に文字を突っ込む方法】
「正規表現を使用」にチェック
「単一行モード」にチェック

置換前文字列
$

置換後文字列


山田太郎でした。

文字の手前に2回改行しとく


但し、テキストファイルの最後に改行が行われていると、2回置換されて
しまうようです。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

参考にさせていただきます。

お礼日時:2011/09/20 19:46

一般的に言って可能です。


お使いのソフトが複数行を読み込んで、全体に正規表現が適用できれば多分できるかと。
私はRubyを主に使っていますが、これだと
/.+/mで改行を含めた全文字列が指定できます。.(ピリオド)は改行を認識しませんのでmを指定することで改行もピリオドで認識させられるようにします。
質問者さんの場合には、前の「いつも元気な山田太郎です。」と後の「山田太郎でした。」の内容のファイルを2種類作っておいて、真ん中に本文のファイルをくっつけて出力したらどうですか?
コンピュータのOSが何かわかりませんがUnixやOSXの場合は
cat file_mae honbun file_ato >new_honbun
のようになるようにバッチフィアルを作り一気に実行すればあっという間にできます。
Windowsでも同様の機能の命令はあるはずですから、それを使えばできるはずです。

ただ結合するだけでなく、本文を少し加工したいときには正規表現の出番です。
    • good
    • 0

> ということは、正規表現では改行があってはダメということですね。


これ自体は可能です。
また、複数行の文章へのマッチも可能です。

しかし、『複数行の文章における1行目の先頭』や『複数行の文章における
最終行の末尾』というのは得られないと思います。

^や$を指定しても、それは行先頭や行末尾であって、複数行に対する
最も先頭、末尾ではありません。

なので、1行目や最終行の文章が決まりきっており、他行で同一文字列が
存在しないならば、その文章の一部を検索対象とすれば見つけ出せる、
ということになると思います。


また、挿入・追加したい部分が文章の先頭、文章の末尾と分かり易い
部分にあるわけですから、プログラムコードを書くような環境でしたら、
正規表現を利用する必然性はないということになります。
    • good
    • 0

正規表現の使い方や使える表現、置換対称等は、使うソフトや設定、プログラムの作り方等でまったく変わってきます。


何を使ってどうしたい、というのが無ければ答えようもありません。

一行単位でしか処理できないものなら「全てのケースでやるのは難しい/不可能」です。
文章でまず使わない文字列を必ず最初とか最後とかに入れることにする( 先頭に%%AISATU%%と入れることにして、「%%AISATU%%」を「いつも元気な山田太郎です。」に置換等)とかいった工夫が必要です。

改行も含めて全体で一つの「文字列」として処理できるものなら「先頭(大抵 ^ を使う)」を「いつも元気な山田太郎です。」に、という置換が使えます。

プログラムなら単純に前後に追加の方が楽でしょう。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

使うソフトはこれになります。

複数行置換 ver.1.41
http://www.vector.co.jp/soft/win95/util/se407023 …

正確に言うと、あるフォルダにテキストファイルが複数入っています。

それら各テキストファイルの上の部分と下の部分にある文章を挿入したいと思っています。

ソフトでは正規表現で置換が出来るので可能かと思ったのですが、難しいでしょうか?

お礼日時:2011/09/17 14:02

正規表現自体は、その表現にマッチするものを抽出する為に


利用するわけであって、複数行にまたがる文章の先頭にどうの、
最後にどうのとするものではありません。

検索文字:^(?=今日は)
置換文字:いつも元気な山田太郎です。\r\n\r\n

検索文字:(?<=しょう。)$
置換文字:\r\n\r\n山田太郎でした。

とかすれば出来るでしょうが、そんな方法で良いならば
やれないことはないと思います。
    • good
    • 0
この回答へのお礼

回答ありがとうございました。

>複数行にまたがる文章

ということは、正規表現では改行があってはダメということですね。

お礼日時:2011/09/17 11:34

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!