利用可能な正規表現

使える(かも知れない)正規表現についての解説です。すべての動作を確認することは難しく、またライブラリの更新により動作が変更になることもあります。最終的にはご自分でご確認ください。

関連:正規表現ライブラリ

基本要素

\エスケープ(退避修飾)
次のメタ文字・量指定子を普通の文字として扱います。
|パターンの論理和
(...)式集合
パターンをグループ化。
[...]文字集合
キャラクタクラス。

文字集合(キャラクタクラス)

[...] の中に以下のものが指定可能です。

(鬼) はbregonig.dllのみ
...[ABC]はAかBかCのどれかにマッチします。
^...否定
[^ABC]はAとBとC以外の任意の1文字にマッチします。
x-y範囲
[A-Z]は、「A」から「Z」までの文字のどれか1つとマッチします。
[...](鬼) 文字集合内文字集合
..&&..(鬼) 積演算
[:xxxxx:](鬼) POSIXブラケット
[:^xxxxx:](鬼) POSIXブラケット(否定)

量指定子(数量子)

最小一致
(無欲)
最大一致
(欲張り)
*? * 直前のパターンの0回以上の繰り返し
+? + 直前のパターンの1回以上の繰り返し
?? ? 直前のパターンが0回または1回現われる
{n}? {n} 直前のパターンの n 回の繰り返し
{n,}? {n,} 直前のパターンの n 回以上の繰り返し
{n,m}? {n,m} 直前のパターンが n 回以上、 m 回以下

正規表現Aを[A-Z_]*PROC 、正規表現Bを[A-Z_]*?PROC とします。
     SAKURA_COLLBACKPROC_BREXP_PROC
という文字列中で、最初にマッチするのは以下のようになります。
    Aの場合: SAKURA_COLLBACKPROC_BREXP_PROC
    Bの場合: SAKURA_COLLBACKPROC

文字

(鬼) はbregonig.dllのみ
\t水平タブコード
\nラインフィード(LF)
\rキャリッジリターン(CR)
\bバックスペース
[ ]の中でのみ有効
\fフォームフィード
\aベル
\eエスケープコード
\ooo oに8進数で文字コードを指定する (oは1〜3桁)
\xHH hに16進数で文字コードを指定する (Hは1〜2桁)
\x{HHHH}(鬼) 拡張十六進数表現(Hは1〜4桁)
\c[ コントロール文字([はコントロール文字)

文字種

(鬼) はbregonig.dllのみ
.\nを除く任意の1文字 [^\n]と同じ
\w単語の構成文字 [0-9A-Za-z_]と同じ
(鬼)2バイト文字も含む
\W単語の構成文字以外
\s空白文字にマッチ
\S空白文字以外
\d数字
\D数字以外
\p{property-name}(鬼) キャラクタプロパティ
\p{^property-name}
\P{property-name}
(鬼) キャラクタプロパティ(否定)

位置(錨)

(鬼) はbregonig.dllのみ
^行頭 ※サクラエディタでは、制限があります。
$行末
\b単語の境界
[ ]の中ではバックスペースの意味になります
\B単語の境界以外
\A文字列の最初
\Z文字列の最後(最後が改行ならば改行の直前)
\z(鬼) 文字列の最後
\G照合開始位置

後方参照と部分式呼び出し

(鬼) はbregonig.dllのみ
\n番号指定による後方参照
( )でグループ化した文字列を、\n(nは1以上の整数)で参照します。
\k<name>
\k'name'
(鬼) 名前指定による後方参照
\k<name+n>
\k<name-n>
\k'name+n'
\k'name-n'
(鬼) ネストレベル付き後方参照
\g<name>
\g'name'
(鬼) 名前指定部分式呼出し
\g<n>
\g'n'
(鬼) 番号指定部分式呼出し

拡張式集合

(鬼) はbregonig.dllのみ
(?#...)注釈
()捕獲式集合
(?:)非捕獲式集合 (グループ化のみ)
(?<name>)
(?'name')
(鬼) 名前付き捕獲式集合
(?=)先読み
(?!)否定先読み
(?<=)(鬼) 戻り読み
(?<!)(鬼) 否定戻り読み
(?>)(鬼) 原子的式集合
(?imsx)孤立オプション
i: 大文字小文字照合
m: 複数行(サクラエディタではデフォルトでon)
s: 単一行 (. が \n にもマッチ)
x: 拡張形式(空白を無視、# 以降を無視)
(?imsx-imsx)(鬼) 孤立オプション(bregonig.dllではオプションの否定が可能)
(imsx-imsx:)(鬼) 式オプション

置換で使える参照

(鬼) はbregonig.dllのみ
$n番号指定参照
( )でグループ化した文字列を、$n(nは1以上の整数)で参照します。
サクラエディタでは$nの代わりに\nも使用できます。
${n}(鬼) (安全な)番号指定参照
後ろにそのまま続けて数字を書くことができます。
$&マッチした文字列全体
$+(鬼) 最後にマッチした部分文字列
$+{name}
$-{name}[n]
(鬼) 名前指定参照(Perl 5.10 互換、推奨)
\k<name>
\k'name'
(鬼) 名前指定参照(鬼車準拠)
${name}(鬼) 名前指定参照(独自拡張、暫定仕様のため非推奨)

bregonig.dllへの変更による違い

正規表現の制限

^■(行頭の■を検索)や、(^■)|(^○)は正しく動きます。
(^■)|(【.*?】)の、後ろ半分の(【.*?】) は、正しく動きません。

改行の検索

サクラエディタで改行(CRLF)を検索する場合は、
\r\n で検索して下さい。
改行(CR,LF,CRLFのすべて)を検索する場合は、
[\r\n]+ のように指定してください。
改行(CR,LF,CRLF,LFCR)と、最終行の行末を検索する場合は、
$ と指定してください。

ヒント
正規表現を検索、置換、Grepで利用する場合、「/」をエスケープしたり、「/」で囲ったりする必要はありません。

追加情報
検索、置換、Grepでは、Bregxpに渡す文字列を以下のようにしています。[0xFF]は、\xffとします。
検索時のオプションは「m[0xFF]Pattern[0xFF]km」です。
置換時のオプションは「s[0xFF]PatternBefore[0xFF]PatternAfter[0xFF]km」です。
また大文字小文字を区別する場合は最後に「i」が付加されます。
(mオプションが付いていますが、改行をまたいだ検索はできません。)