サクラエディタ:正規表現を使った置換機能
こんなに使える!サクラエディタの便利な機能
サクラエディタ
みなさんはテキストエディタは何を使っていますでしょうか?
Wordpressによるサイト制作を専門にされている方であれば、もしかしたら専用のテキストエディタを使っていないという方(フリーランスなどに多いでしょうか)もいらっしゃるかも知れませんね。
普通はWEB系のお仕事をされているのであれば、テキストエディタは必須だと思います。
私はサクラエディタを使う事が多いのですが(他と併用ですね)、非常に便利なテキストエディタとして有名なフリーソフトです。
今回は日頃よりお世話になっている、このサクラエディタの正規表現を使った置換機能を一部ご紹介します。
以下に記載している機能だけでもサクラエディタが便利な事が伝わると思います。
あわせて読みたい関連記事
正規表現を使うための準備
正規表現とは
一括変更・一括置換の「対象範囲が広がる」表現
正規表現とは文字列の一部をあいまいにして、1つの文字列で複数の文字列を表す表現方法のことです。この表現方法を使うと1つの検索条件で広い範囲を検索対象にすることができます。
例えば「admin01」「admin02」「admin03」「admin10」「admin0」の5つの文字の場合、admin部分は共通でその後ろに〇〇と付いている文字ばかりですよね。
ここで「admin〇〇」となっている全ての文字を検索や置換の対象としたい場合には、〇〇部分を*に相当させて、対象全てを「admin*」と表現できます。
正規表現には「*」以外にもいろいろな表現方法があります。
この正規表現をうまく使って、エディタ内に記述してある文書を自在に一括変更・一括置換することができるのです。
ワイルドカードとは
ワイルドカードとは上部で述べた「*」のような特殊文字のことです。正規表現とは表現方法全体のことを指しており、それに対しワイルドカードとは正規表現の一種である特殊文字のことを指しています。
UNIX系やWindows系ではワイルドカードにあたる文字は次の2つです。
? | 任意の1文字 |
---|---|
* | 長さ0文字以上の任意の文字列 |
上で述べたの5つの文字列の場合「admin*」とする事で5つ全てが対象となっていましたが、「admin?」の場合はadminの後に1文字しかない文字が対象となるため、上の場合「admin0」だけが対象となります。
サクラエディタで正規表現を有効にする方法
Ctrl+Fで「検索」、Ctrl+Rで「置換」の画面が開きます。まずはその窓内で正規表現の欄にチェックを付けましょう。
置換画面:正規表現にチェックを入れます。
正規表現のチェックは付け外ししましょう
ここで紹介する正規表現のチェックを付けると、それまでできていた置換ができなくなる場合があります。ワイルドカードを使わずにできる置換の時はチェックを外しておきましょう。
改行を表す正規表現
CRLF | Windowsで一般的に使用されている改行コード |
---|---|
CR | MacOS9以前のMacで使用されている改行コード |
LF | UNIX(Linux)や、MacOSX以降で一般的に使用されている改行コード |
これらの改行コードを正規表現で表すと、次のようになります。
¥r¥n | CRLF |
---|---|
¥r | CR(キャリッジリターン) |
¥n | LF(ラインフィールド) |
正規表現の種類
正規表現には他にも様々なコードがあります。
タブを表す正規表現
水平タブコード(TAB)は、次のように表すことができます。
¥t
行頭を表す正規表現
行頭を表す正規表現は、次の1文字になります。
^
行末を表す正規表現
行末を表す正規表現は、次の1文字で表します。
$
文字列の最初を表す正規表現
文字列の最初を表す正規表現は、次の2文字で表します。
¥A
文字列の最後を表す正規表現
文字列の最後を表す正規表現は、次の2文字になります。
¥Z
正規表現を使った置換作業例
Ctrl+Rを押して置換画面を開き、まずは正規表現にチェックが入っている事を確認しておきましょう。
以下に紹介する入力の仕方は全て、上の置換画面にある「置換前」および「置換後」それぞれのボックス内に入れる記号になります。
改行を全て削除したい場合
置換前に「¥r¥n」と入力。置換後は空欄のままにします。
置換前:¥r¥n
置換後:
スペースやタブだけの行でスペース・タブを削除して、空行にする場合
置換前に[¥t]+([¥r¥n])と入力、置換後には$1と入力します。
置換前:[¥t]+([¥r¥n])
置換後:$1
スペースやタブだけの行を削除する場合
置換前に[¥t]+[¥r¥n]+と入力、置換後は空欄のままにします。
置換前:[¥t]+[¥r¥n]+
置換後:
何も無い空の行を削除する場合
置換前に[¥r¥n]+と入力、置換後は空欄のままにします。
置換前:[¥r¥n]+
置換後:
何も無い空の行、スペースやタブのみの行を削除する場合
置換前に[¥t]*[¥r¥n]+と入力、置換後は空欄のままにします。
置換前:[¥t]*[¥r¥n]+
置換後:
マクロを使ってより便利に
上記の作業の中で自分が頻繁に利用する機能があれば、それを「マクロ」として登録しておく事で、その作業を記憶し再実行する事ができます。
ツールメニューの中にマクロがあります。
記録したマクロ(複数登録できます)を呼び出す事で、例えば
「置換画面表示」
「置換前への内容入力」
「置換後への内容入力」
「置換」
といった一連の作業を一発でやってくれるようになります。
実際にマクロ登録の練習をしてみましょう。
文面の前後をpタグで囲い、pタグ段落の間に空白行を入れる場合
例えば下記のような文章のみのテキストファイルで、改行されている文面の前後をpタグで囲い、pタグ段落の間に「空白行」を入れるような作業を常におこなっているとしましょう。
作業前の状態:
作業後の状態:
全ての文章にpタグがついて、間に一行間隔があります。
これをマクロ登録しておけば作業前の状態から一発で作業後の状態にできるのです。大変便利ですよね。
マクロ登録の仕方
作業前の状態から3回にわたって置換作業をする事で、作業後の状態にする事ができます。それをマクロに登録してみましょう。
空白行を置換で消す
まずは画面上部メニューの「ツール」から「マクロ記録開始」をクリックします。
まずは作業前の状態で空白行を一旦すべて削除する置換をおこないます。
Ctrl+Rで置換画面を出しましょう
置換前に、^[¥r¥n]+を入力します。そして置換後は空欄のままにしましょう。
これで「置換」をクリックすると空白行だけが全て無くなります。
文章の終わり 文章始まり
pタグの挿入
もう一度、Ctrl+Rで置換画面を出しましょう。次は文章終わりの改行マークの部分にpタグを入れます。
置換前に、$を入力します。$は行末を表す正規表現です。
置換後には、</p>¥r¥n¥r¥n<p>と入力します。これにより行末に</p>が入り、一段空白行が入って<p>がその後に入ります。
文章の終わり</p> <p> 文章始まり …【繰り返し】
</p>から一段落空いて次の<p>までが入る(次のpタグの始まりが段落ちしている事に注意)
開始pタグ後の改行を消す
最後は上の置換でできた<p>の後にある改行部分のみを消します。もう一度Ctrl+Rで置換画面を出しましょう。
置換前に<p>¥r¥nを入力します。置換後には<p>を入力します。
これで置換をする事で<p>タグの前の改行が消えてそのまま行頭が続くようになります。
文章の終わり</p> <p>文章始まり …【繰り返し】
マクロの記録終了&保存
ここまで終了したらツールから「マクロの記録終了&保存」をクリックします。
マクロファイル保存の窓が開きますので、今回の3つの置換を実行するために任意の名前を付けて保存します。
マクロファイルの保存画面(拡張子は.macのままでOKです)
これで終了です。
マクロ実行の仕方
では登録したマクロを実行してみましょう。先ほどの3つの置換をした後のテキストファイルをCtrl+Zなどで元の状態にまで戻します。置換をする前の状態にするわけですね。これでマクロを実行して一発で置換をしてみます。
キーマクロの読込
その上で「ツール」から「キーマクロの読込」をクリックします。
先ほど保存したマクロ名を選択して、「開く」をクリックましょう。マクロ名は複数保存できるので、利用したいマクロ名を選択していつでも実行ができます。
マクロ実行
ショートカットキーで「Shift+Ctrl+L」が便利
ここまではマクロ名を選択しただけなので反映はされません。マクロの実行が必要になります。
マクロを実行する場合は「ツール」から「キーマクロの実行」をクリックですが、ショートカットキーでShift+Ctrl+Lで実行できます。
実行すると3つの置換が自動でされて、pタグが入った状態になっているはずです。
実行後の状態
※上記の置換をしたあとは、一番先頭の文章頭にp開始タグが付いていないし、ラスト行にp開始タグが一つ余計についてしまっているので、それぞれ追加・削除をしておきましょう。
いかがでしたか?サクラエディタにはこういった正規表現による置換・マクロ機能以外にもいろいろな機能が搭載されていますので、是非一度使ってみられてはいかがでしょうか。