解決済みの質問
abc↓
1行の文字列またはランダムな個数の改行を含むランダムな長さの英文文字列
def↓
を
abc↓
あ↓
def↓
に置換したい場合、検索文字列はどのように指定すればいいのでしょうか?
「1行の文字列またはランダムな個数の改行を含むランダムな長さの英文文字列」は、
ee ff gg↓
の場合もあれば、
ee ff gg↓
hh iii jj↓
kk.↓
のような場合もありますが、これらすべてを全角1文字に置換したいのです。
また、この
abc↓
1行の文字列またはランダムな個数の改行を含むランダムな長さの英文文字列
def↓
は、他の文章の中に大量に埋まっていて、他の文章の体裁は崩せないため、
一括でとりあえずずべての改行を削除という方法は使えません。
お手数ですがどうぞよろしくお願い致します。
投稿日時 - 2012-03-21 11:24:10
>(改行の個数がまちまちだからでしょうか・・・)
はい、回答にあげた例では、真ん中の文字列を「改行を含まない文字列」
すなわち「任意の一行」という指定ですので、複数行にはマッチしません。
…すみません、質問文から「改行を含むこともある」ことを読み落としていました。
かといって、全く任意の文字列「.*」を使ってしまうと、今度は最長一致となって困ったことになります。
--------テキスト例
abc
適当な
文字列
def
abc
適当な文字
そのに
def
--------テキスト例ここまで
上記を「abc\n.*\ndef」で置換すると、最初のabcと最後のdefにマッチしてしまい、途中は全部「あ」一文字に置換されてしまうんです。
「abc\n[^\n]*\n[^\n]*\ndef」…abc~def間が2行
「abc\n[^\n]*\n[^\n]*\n[^\n]*\ndef」…abc~def間が3行
「abc\n[^\n]*\n[^\n]*\n[^\n]*\n[^n]*\ndef」…abc~def間が4行
このように、検索文字列を増やして置換を繰り返せば、数回~10回程度で済むでしょうか…。
投稿日時 - 2012-03-21 16:47:50
お礼
補足のご回答をいただいてありがとうございました。
教えていただいた方法で何回か繰り返せば大丈夫そうです。
全く思いつきませんでした。
手作業よりはるかに楽で確実で、目と肩の痛みも軽減します。
ありがとうございました。
投稿日時 - 2012-03-21 17:10:31
0人が「このQ&Aが役に立った」と投票しています
ベストアンサー以外の回答(1件中 1~1件目)
置換のダイアログで正規表現を有効にして(チェックを入れる)、
検索文字列: abc\n[^\n]*\ndef
置換文字列: abc\nあ\ndef
とすれば良いでしょう。
正規表現モードでは、
\n=改行
[^\n]=改行以外の任意の文字
*=直前の文字の任意個(0個以上)の繰り返し
など、様々な表現が使用できます。
投稿日時 - 2012-03-21 11:45:12
お礼
早々にご回答ありがとうございました。大変参考になりました。
しかし、試してみたのですがうまく機能しませんでした。
(改行の個数がまちまちだからでしょうか・・・)
ご回答を参考に正規表現でいろいろ試してみます。
投稿日時 - 2012-03-21 16:15:18
OKWaveのオススメ
おすすめリンク