正規表現(Ver7.11対応版)
目次
−
検索系コマンド
− 正規表現
秀丸エディタでは検索、置換、grepで正規表現を使用することができます。正規表現を使用するとDOSの
ワイルドカード
のような検索はもとより、非常に複雑な条件で検索することができます。
正規表現は、外部のDLL(プログラム)によって実現されています。
秀丸エディタでは、「HmJre.dll」と「Jre32.dll」と言うDLLが標準でインストールされ標準の設定では、「HmJre.dll」を使用するように設定されています。
正規表現検索で使用するDLLの変更は、[
動作環境
]-[
環境
]で行うことができます。
Hmjre.dllの詳細な仕様については、
HmJre.dllのヘルプ
を参照してください。
正規表現はテキストを処理(主に検索)するときに非常に便利ですので、是非覚えましょう。正規表現に誤りがある場合やメモリが不足している場合などは、検索ができずエラーが表示されます。
次のメタキャラクタ(特殊キャラクタ)を使って検索します。
メタキャラクタ
意味
[]
キャラクタクラス
()
パターンをグループ化する
^
行頭
(または
キャラクタクラス
内での補集合)
$
行末
.
改行を除く任意の1文字
*
直前のパターンの0回以上の繰り返し
+
直前のパターンの1回以上の繰り返し
?
直前のパターンが0回または1回現れる
|
パターンの論理和
\
エスケープ文字
以下は、正規表現のDLLにHmJre.dllを指定している場合に有効です。
メタキャラクタ
意味
{n}・{n,}・{n,m}
パターンの繰り返し回数指定
(?=expression)
後方一致指定(V1.50にて一部拡張)
(?!expression)
後方不一致指定(V1.50にて一部拡張)
(?<=expression)
前方一致指定
(?<!expression)
前方不一致指定
\1・\2 ...
一般的正規表現互換のタグ付き正規表現(V1.50から)
*?・+?・??・{n,m}?
繰り返しマッチングでのものぐさ指定
(?\tag-number)
ヒットした扱いにするタグ指定(hmJre.dll独自形式)
エスケープ文字を使って、
エスケープシーケンス
を使用することもできます。
なお、メタキャラクタそのものを検索したい場合はエスケープ文字でエスケープしてください。
例えば、パーレンや疑問符を検索したい場合は次のようにします。
パーレンの場合:
\(
疑問符の場合:
\?
エスケープ文字も特殊文字ですのでエスケープする必要があります。
\\
さらにマクロで正規表現を使う場合は、ダブルクォーテーション(")内の表記になるため、\マークを二重にして\\として書く必要があります。
例:
検索ダイアログボックスの場合 (正規表現ON)
「改行を検索\n」
マクロの場合
searchdown "改行を検索\\n", regular;
HmJre.dllは、JRE32.DLLとの互換性を多少なりとも確保するために、{n}などの形式で間違いがあってもエラーにはなりません。例えば「a{」が指定された場合は、それは{n}などの指定ではなく、単に「a{」という文字列を検索する指定であると解釈されます。