正規表現は、検索する文字そのものではなく、特定のパターンに一致する文字列を検索したいときに威力を発揮します。そして、さまざまな場面で利用されます。
秀丸エディタでは、正規表現のペルプが提供されています。
これらのヘルプは、一通り目を通しておき、ある程度、正規表現が使えるようになってから、再度、見直す使い方が良いかと思います。
秀丸エディタのバージョンの違いや32bit版、64bit版で多少動作が異なる部分がありますが、自分で利用する範囲では、気にする必要はほとんどないと思います。従来の公開されているマクロを使用する際は、影響がある場合があるので注意して下さい。
正規表現を構成する要素
正規表現は、特別な意味を持つメタキャラクタ、そして、通常の文字とメタキャラクタと区別するためのエスケープ文字で提供されるリテラルで表現します。
| メタキャラクタ | 意味 |
|---|---|
| [ ] | キャラクタクラス |
| ( ) | パターンをグループ化する |
| ^ | 行頭 (またはキャラクタクラス 内での補集合) |
| $ | 行末 |
| . | 改行を除く任意の1文字 |
| * | 直前のパターンの0回以上の繰り返し |
| + | 直前のパターンの1回以上の繰り返し |
| ? | 直前のパターンが0回または1回現れる |
| | | パターンの論理和 |
| \ | エスケープ文字 (エスケープシーケンス) |
正規表現では、以下のエスケープシーケンスが使用できます。
| シーケンス | 機能 |
|---|---|
| \ooo | oに8進数で文字コードを指定する。oは3桁 |
| \xhh | hに16進数で文字コードを指定する。hは2桁 |
| \a | ベル(文字コード7) |
| \b | バックスペース(文字コード8) |
| \n | ニューライン(文字コード10)(改行) |
| \r | キャリッジリターン(文字コード13) |
| \t | 水平タブコード(文字コード9) |
| \v | 垂直タブコード(文字コード11) |
| \e | エスケープコード(文字コード27) |
| \z | エンドオブファイル(EOF:文字コード26) |
| \< | 英単語の始まり(ここでの英単語は、半角アルファベットと半角アンダースコア(_)だけで構成される文字列 ) |
| \> | 英単語の終わり(ここでの英単語は、半角アルファベットと半角アンダースコア(_)だけで構成される文字列 ) |
| \w | 英単語。半角英字と半角「_」(アンダースコア)にマッチ |
| メタキャラクタ | 意味 |
|---|---|
| {n}・{n,}・{n,m} | パターンの繰り返し回数指定 |
| (?=expression) | 後方一致指定(V1.50にて一部拡張) |
| (?!expression) | 後方不一致指定(V1.50にて一部拡張) |
| (?<=expression) | 前方一致指定 |
| (?<!expression) | 前方不一致指定 |
| \1・\2 ...、\g{数字}、\g{-数字} | 一般的正規表現互換のタグ付き正規表現(V1.50から、\gはV4.13から) |
| *?・+?・??・{n,m}? | 繰り返しマッチングでのものぐさ指定 |
| (?\tag-number) | ヒットした扱いにするタグ指定(hmJre.dll独自形式) |
| \s | 空白([ \t\r\n]と同じ)(注意:\nを使った複数行検索の際の制限について)(HmJre.dll V3.00以降) |
| \S | \s以外(HmJre.dll V3.00以降) |
| \d | 数字([0-9]と同じ)(HmJre.dll V3.00以降) |
| \D | \d以外(HmJre.dll V3.00以降) |
| \c(\wではないことに注意) | 英数字と「_」([a-zA-Z0-9_]と同じ)(HmJre.dll V3.00以降) |
| \C(\Wではないことに注意) | \c以外 (HmJre.dll V3.00以降) |
| \i | 英字と「_」([a-zA-Z_]と同じ) (HmJre.dll V3.00以降) |
| \I | \i以外 (HmJre.dll V3.00以降) |
| \w (Perlなどの一般的な正規表現と異なるので注意、HmJre.dllがなくても使える) | 英単語。半角英字と半角「_」(アンダースコア)にマッチ |
| \y | 数字を含む単語の区切り(\<|\>と似ているけど数字も判断) (HmJre.dll V3.00以降) |
| \Y | \y以外の区切り (HmJre.dll V3.00以降) |
| \Q~\E | メタ文字を文字とみなす (HmJre.dll V3.00以降) |
| (?:expression) | \1・\2の対象としないグループ (HmJre.dll V3.00以降) |
| (?#expression) | コメント (HmJre.dll V3.00以降) |
| (?#similar:数値) | 類似検索 (HmJre.dll V3.00以降) |
(?#maxlines:数値) (?#fulllinematch) |
複数行検索時の制限解除(秀丸エディタV8.00以降) |
\(tag,function) \(tag,function,module,parameter) |
変換モジュールによる変換の指定(置換文字列のみ)(秀丸エディタV8.00以降) |
正規表現のDLLにHmJre.dllを指定されているかを確認するためには、以下の操作を行います。

「その他」から「動作環境」を選択します。

環境を選択し、正規表現の項目を確認します。
メタキャラクタに使用されている記号そのものを検索したい場合、検索した記号の前にエスケープシーケンス「\」を付けて表現します。
パーレンの場合:
\(
疑問符の場合:
\?
エスケープ文字も特殊文字ですのでエスケープする必要があります。
\\
さらにマクロで正規表現を使う場合は、ダブルクォーテーション(")内の表記になるため、\マークを二重にして\\として書く必要があります。
検索ダイアログボックスの場合 (正規表現ON)
「改行を検索\n」
マクロの場合
searchdown "改行を検索\\n", regular;
ブラケット(キャラクタクラス)「[]」を用いた定形表現
| メタキャラクタ | 意味 |
|---|---|
| [] | ブラケット(キャラクタクラス) |
| ^ | 否定文字クラス |
| - | 範囲指定 |
| ブラケットを用いた表現 | メタキャラクタによる表現 | 意味 |
|---|---|---|
| [0-9] | \d | 数字にマッチ |
| [^0-9] | \D | 数字以外にマッチ |
| [a-zA-Z0-9_] | \c(\wではないことに注意) | 英数字と「_」にマッチ |
| [^a-zA-Z0-9_] | \C(\Wではないことに注意) | 英数字と「_」以外にマッチ |
| [a-zA-Z_] | \i | 英字と「_」にマッチ |
| [^a-zA-Z_] | \I | 英字と「_」以外にマッチ |
「^」を先頭につけたものを否定文字クラス(あるいは、文字クラスの否定)と呼び、「^」と「]」で囲まれた文字以外にマッチします。
| ブラケットを用いた表現 | 意味 |
|---|---|
| [a-z] | 英小文字にマッチ |
| [A-Z] | 英大文字にマッチ |
| [a-zA-Z0-9] | 英数字にマッチ |
| [1-3] | 1,2,3のいずれかにマッチ |
| [-3] | -と3にマッチ |
| [1-] | 1と-にマッチ |
ここまで、確認したら、後は、目的の正規表現パターンを探したり、実際に使いながら目的に合う正規表現パターンを見つけて行きましょう。