English help on website



正規表現(Ver9.00対応版)
目次コマンド検索系コマンド− 正規表現
 秀丸エディタでは検索、置換、grepで正規表現を使用することができます。正規表現を使用するとDOSのワイルドカードのような検索はもとより、非常に複雑な条件で検索することができます。

 正規表現は、外部のDLL(プログラム)によって実現されています。
 秀丸エディタでは、「HmJre.dll」と「Jre32.dll」と言うDLLが標準でインストールされ標準の設定では、「HmJre.dll」を使用するように設定されています。
 正規表現検索で使用するDLLの変更は、[動作環境]-[環境]で行うことができます。
 Hmjre.dllの詳細な仕様については、  HmJre.dllのヘルプ  を参照してください。
 Hmjre.dllの詳細な仕様については、  HmJre.dllのヘルプ  を参照してください。

 正規表現はテキストを処理(主に検索)するときに非常に便利ですので、是非覚えましょう。正規表現に誤りがある場合やメモリが不足している場合などは、検索ができずエラーが表示されます。

検索文字列
 次のメタキャラクタ(特殊キャラクタ)を使って検索します。

メタキャラクタ 意味
[ ] キャラクタクラス
( ) パターンをグループ化する
^ 行頭 (またはキャラクタクラス 内での補集合)
$ 行末
. 改行を除く任意の1文字
* 直前のパターンの0回以上の繰り返し
+ 直前のパターンの1回以上の繰り返し
? 直前のパターンが0回または1回現れる
| パターンの論理和
\ エスケープ文字 (エスケープシーケンス


 以下は、正規表現のDLLにHmJre.dllを指定している場合に有効です。 参照:HmJre.dllのヘルプ 参照:HmJre.dllのヘルプ

{n}・{n,}・{n,m} パターンの繰り返し回数指定
(?=expression) 後方一致指定 (HmJre.dll V1.50にて一部拡張)
(?!expression) 後方不一致指定 (HmJre.dll V1.50にて一部拡張)
(?<=expression) 前方一致指定
(?<!expression) 前方不一致指定
\1・\2 ... 一般的正規表現互換のタグ付き正規表現 (HmJre.dll V1.50から)
\g{数字}、\g{-数字} 一般的正規表現互換のタグ付き正規表現 (HmJre.dll V4.13から)
*?・+?・??・{n,m}? 繰り返しマッチングでのものぐさ指定
(?\tag-number) ヒットした扱いにするタグ指定
\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 英数字と「_」([a-zA-Z0-9_]と同じ) (HmJre.dll V3.00以降)
\C \c以外 (HmJre.dll V3.00以降)
\i 英字と「_」([a-zA-Z_]と同じ) (HmJre.dll V3.00以降)
\I \i以外 (HmJre.dll V3.00以降)
\y 数字を含む単語の区切り(\<|\>と似ているけど数字も判断) (HmJre.dll V3.00以降)
\Y \y以外の区切り (HmJre.dll V3.00以降)
\Q〜\E メタ文字を文字とみなす (HmJre.dll V3.02以降)
(?:expression) \1・\2の対象としないグループ (HmJre.dll V3.00以降)
(?#expression) コメント (HmJre.dll V3.00以降)
(?#similar:数値) 類似検索 (HmJre.dll V5.00以降)
[\uXXXX] Unicodeによる指定(4桁)
[\u{XXXXX}] Unicodeによる指定(任意の桁) (HmJre.dll V3.38以降)
[\UXXXXXXXX] Unicodeによる指定(8桁) (HmJre.dll V4.11以降)
(?<name>pattern)、\g<name> 部分式呼び出し (HmJre.dll V5.20以降)
(?#maxlines:数値) 複数行検索時の制限解除 (秀丸エディタV8.00以降)
(?#fulllinematch) 複数行検索時の制限解除 (秀丸エディタV8.00以降)
(?#lookbehind) 強調表示の制限解除 (秀丸エディタV8.89以降)

 参照:HmJre.dllのヘルプ
 参照:HmJre.dllのヘルプ

置換文字列
 置換文字列は、メタキャラクタは「\」から始まる一部の書き方のみが有効です。

\t タブ
\n 改行
\ その他のエスケープシーケンスのうち、\a \b \r \v \f \e \xXX
\1・\2 ... 一般的正規表現互換のタグ付き正規表現 (HmJre.dll V1.50から)
\g{数字}、\g{-数字} 一般的正規表現互換のタグ付き正規表現 (HmJre.dll V4.13から)
\(tag,function) 変換モジュールによる変換の指定(置換文字列のみ) (秀丸エディタV8.20以降)
\(tag,function,module,parameter) 変換モジュールによる変換の指定(置換文字列のみ) (秀丸エディタV8.20以降)


 エスケープ文字を使って、エスケープシーケンス を使用することもできます。
 なお、メタキャラクタそのものを検索したい場合はエスケープ文字でエスケープしてください。
 例えば、パーレンや疑問符を検索したい場合は次のようにします。

 置換文字列の場合は、メタキャラクタは「\」のみです。「(」はそのまま「(」と記述できます。「\」そのものは「\\」として書く必要があります。

 さらにマクロで正規表現を使う場合は、ダブルクォーテーション(")内の表記になるため、\マークを二重にして\\として書く必要があります。

例:

 HmJre.dllは、JRE32.DLLとの互換性を多少なりとも確保するために、{n}などの形式で間違いがあってもエラーにはなりません。例えば「a{」が指定された場合は、それは{n}などの指定ではなく、単に「a{」という文字列を検索する指定であると解釈されます。