- ベストアンサー
秀丸エディタでの改行を含む複数行の置換について
- 秀丸エディタでの改行を含む複数行の置換方法について解説します。
- 検索文字列を指定して、指定した文字列を置換することができます。
- 改行を削除せずに、全角1文字に置換する方法もご紹介します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>(改行の個数がまちまちだからでしょうか・・・) はい、回答にあげた例では、真ん中の文字列を「改行を含まない文字列」 すなわち「任意の一行」という指定ですので、複数行にはマッチしません。 …すみません、質問文から「改行を含むこともある」ことを読み落としていました。 かといって、全く任意の文字列「.*」を使ってしまうと、今度は最長一致となって困ったことになります。 --------テキスト例 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回程度で済むでしょうか…。
その他の回答 (1)
- asciiz
- ベストアンサー率70% (6849/9742)
置換のダイアログで正規表現を有効にして(チェックを入れる)、 検索文字列: abc\n[^\n]*\ndef 置換文字列: abc\nあ\ndef とすれば良いでしょう。 正規表現モードでは、 \n=改行 [^\n]=改行以外の任意の文字 *=直前の文字の任意個(0個以上)の繰り返し など、様々な表現が使用できます。
お礼
早々にご回答ありがとうございました。大変参考になりました。 しかし、試してみたのですがうまく機能しませんでした。 (改行の個数がまちまちだからでしょうか・・・) ご回答を参考に正規表現でいろいろ試してみます。
お礼
補足のご回答をいただいてありがとうございました。 教えていただいた方法で何回か繰り返せば大丈夫そうです。 全く思いつきませんでした。 手作業よりはるかに楽で確実で、目と肩の痛みも軽減します。 ありがとうございました。