逆引き秀丸の正規表現で置換サンプル集(旧)

秀丸エディタの正規表現検索を使って置換ライフを楽しみましょう。
あまり使わないかも知れない、ちょっとしたサンプルをまとめてみました。

このページの内容は、秀丸のバージョンアップに伴い、古い内容となっています。
秀丸バージョン6より前のバージョン向けとなります。

新しいページはこちら

目次

秀丸での正規表現置換のやり方

とりあえず基本を。
メニューから[検索]-[置換]を選択すると、以下のダイアログが現れます。
置換
正規表現のチェックを付けるだけ。これで準備OKです。

末尾に <BR> を挿入する

たっぷり文章を書いて、そのままHTMLにコピーして・・・という場合?など。
\nは改行を意味します。改行を検索して、<BR>タグに置換します。

検索:
置換:

HMJRE.dll を使用している場合は、以下の条件で同様の置換ができます。
計ってませんが、ちょっと早いでしょうね。

検索:
置換:

空行には <BR> を入れない -- 再度置換

末尾に <BR> を挿入する」の置換をした後に、 空行は <BR> いらないやというとき。
<BR> だけの行を検索して、<BR> を削除します。

検索:
置換:

「<BR>で始まり、あとは改行だけ」な行を検索しています。

先頭が # で始まる行を削除する

コメントなどにも応用できまうす。
^ は先頭を意味します。 ^# で、# で始まる行が検索されます。

検索:
置換: なし
        

先頭に // を入れてコメントにする

JavaScript なんかで、いらない行をまとめてコメントにしたい時に。
コメントにする行を選択して、「選択した範囲のみ」にチェックを入れてから置換します。
置換

検索:
置換: 

空行を削除

単純に、空行がじゃまなとき。
^\n で、改行だけの行がヒットします。

検索:
置換: なし

タブや半角スペースだけの行も空行として削除

実は単純ではなく、半角スペースやタブだけの行が混在しているときは、以下の条件で削除できます。

検索:
置換: なし

ある文字が含まれる行を削除する

大量のログを眺めなければいけない場合、どうにもいらない行はこれで削除してしまいます。
実行前にバックアップしておくのがよいですね。

検索:
置換: なし

ある文字が含まれない行を削除する

というより、ある文字が含まれる行のみ抽出します。
置換ではちと難しいので、grep を利用しましょう。
以下の条件で、現在のファイルを対象に grep を実行すると、検索結果の一覧を作ってくれます。

検索する文字列 :
検索するファイル :(現在の内容)

grep
※画面は、動作環境の設定によって異なる場合があります。

grep 実行後、別ウィンドウに検索結果の一覧が作成されます。 が、先頭に(ファイル名と)行番号が表示されるので、邪魔であれば以下の条件で削除してしまいましょう。

検索: 最後に半角スペースあります
置換:  なし

日付の形式を変えてみる - yyyy/mm/dd を yyyy年mm月dd日 に置換

日記なんかの日付のフォーマットを無性に変えたくなったりしたら。

検索:
置換:

\f を使うと、それを区切りとして、正規表現中の特定部分を \番号 として取り出すことができます。
ここでは、以下のように取り出されています。

  • \0 --
  • \1 -- yyyy
  • \2 -- /
  • \3 -- mm
  • \4 -- /
  • \5 -- dd
詳しくは、こちらで解説されています。
第IV部〜テキスト編集を極める!! タグ付き正規表現とは?

空白 -> タブ変換

範囲選択して右クリックで「空白 -> タブ変換」がありますが、 これだと文中の空白もタブに変換されてしまいます。
どうしても、先頭の空白だけをタブに変換したいという場合に。
※ここでは、空白4つをタブとして変換します。

検索: 途中に半角スペース4つあります
置換:

一度実行すると、先頭の半角スペース4つがタブに変換されます。
ただ、その後ろの空白はまだ置換されてません。ので、置換できなくなるまで、同じ条件で置換を繰り返します。

この置換は、正規表現のDLLが JRE32.dll ではうまくいきますが、 HMJRE.dll ではうまくいきませんでした。
試してみる場合は、こちらのページを参考に、DLLを切り替えてみてください。
秀丸エディタを使いこなす ―正規表現―HmJre.dllで拡張された機能――

繰り返すというのがダサダサなので、もうちっとうまい方法がありそうですが。


Copyright 2004-2006 dearie.jp All Rights Reserved.