こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

サクラエディタで連続改行”\r\n”を置換

サクラエディタで連続する改行”\r\n”を置換したいです。

\r\n\r\n
で置換しても、

量子指定で
{\r\n\r\n}+
で置換しても、

\r+\n+\r+\n+
で置換しても、

うまくいかないのです。

投稿日時 - 2017-06-19 07:54:19

QNo.9342759

困ってます

質問者が選んだベストアンサー

要するに行頭の改行を消したいと言うことなら
^\r\n
で置換すれば消えます。



なお、サクラエディタの標準機能では
改行をまたぐマッチングはできないです。
http://sakura.qp.land.to/?FAQ%2F2

投稿日時 - 2017-06-19 09:25:24

お礼

ありがとうございます。
改行をまたぐマッチングはできないのですね。。

投稿日時 - 2017-06-20 07:36:34

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(5)

ANo.5

あぁ、改行を超えての検索・置換は出来ないですね。

説明の『一番最後』に記述が・・・・
http://sakura-editor.sourceforge.net/htmlhelp/HLP000089.html
---------- 引用ここから
(mオプションが付いていますが、改行をまたいだ検索はできません。)
---------- 引用ここまで

他の方からもあるように「\r\n」を「絶対に出現しない文字列」に置換してから処理するしかなさそうです。

例えばタブ記号が存在しないのが分かっていれば(\tで検索してHitしなければ)

\r\n → \t に置換
\t\t → \t に置換
\t → \r\n に置換

の3ステップですね。

投稿日時 - 2017-06-20 09:26:28

お礼

ありがとうございます。

やはりそうなってしまいますか。。
エディターも、それぞれ一長一短ありますね。。

投稿日時 - 2017-06-20 23:35:37

ANo.4

1)改行があるとうまくパターンマッチしないので最初に改行を通常の文字に変換することを考えます。
2)例えば、いったん「\r\n」を全角の「¥r¥n」にしてしまえばいい。このとき、元の文書に「¥r¥n」があったりすると誤動作しますので、ユニークな別の文字列、例えば「¥¥¥rrrnnnn」にでも変えておきます。
3)もう、改行はただの文字列(「¥r¥n」だったり、「¥¥¥rrrnnnn」だったり)になっているので、「(¥r¥n)+」を変換対象として普通に置換できます。
4)置換が終わったら、「¥r¥n」を「\r\n」に戻します。

以上、手作業での手順ですが、マクロにでも登録しておけば捗ると思います。

投稿日時 - 2017-06-19 19:03:19

お礼

ありがとうございます。
連続した改行には対応していないのですね。。
秀丸でできたのでsakuraでもできるという固定観念がありました。。
テクニックもありがとうございます。

投稿日時 - 2017-06-20 07:45:45

ANo.3

どう「うまくいかない」のかわかりません。まったく置換できないので、置換結果が想定したものと違うのか・・・

もし「まったく置換されない」のだとしたら、置換内容を入力するダイアログで『正規表現』にチェックが入っていないとかではありませんか?

投稿日時 - 2017-06-19 10:46:06

補足

うまくいかない内容としては、
◆置換対象
「2個の連続した改行」

◆置換後文字
「改行1だけ」

◆結果
「2個の連続した改行」が認識されず何も変わらない。

投稿日時 - 2017-06-20 07:41:59

お礼

『正規表現』にチェックが入っていないとかではありません。

投稿日時 - 2017-06-20 23:34:14

ANo.1

それって改行コードが違うとか?

\n
\r
\n\r (これはどうかな?)

など色々ありますしね。

それより

>うまくいかないのです。

どのような状態を置換しようとしてどうなってしまうのかを、
きちんと説明された方が良いでしょうね。

ちなみにサクラエディタで改行だけをずっと並べて
置換前:\r\n
置換後:
でやると1行になりますけど。

投稿日時 - 2017-06-19 08:23:14

補足

うまくいかない内容としては、
◆置換対象
「2個の連続した改行」

◆置換後文字
「改行1だけ」

◆結果
「2個の連続した改行」が認識されず何も変わらない。

投稿日時 - 2017-06-20 07:42:29

お礼

ありがとうございます。
次回は具体的に書いてみます。

投稿日時 - 2017-06-20 07:35:50