正規表現

QMAIL3で使用できる正規表現は以下の通りです。

使用できる表現

文字

x
文字x
\\
\ (\u005C)
\n
改行文字 (\u000A)
\r
キャリッジリターン文字 (\u000D)
\t
タブ文字 (\u0009)
\0ooo
8進数oooを持つ文字(必ず3桁で、0 <= o <= 7、ただし最上桁は0 <= o <= 3)
\xhh
16進数hhを持つ文字(必ず2桁)
\uhhhh
16進数hhhhを持つ文字(必ず4桁)

文字クラス

[abc]
a, bまたはc
[^abc]
a, b, c以外
[abc^]
a, b, cまたは^
[a-z]
aからzのいずれか
[^a-z]
aからz以外
[a-zA-Z]
aからzまたはAからZのいずれか
[a-z-[ew]]
aからz、ただしeとwを除く ([a-df-vx-z])
[a-z-[e-w]]
aからz、ただしeからwを除く ([a-dx-z])
[a-z-[^e-w]]
aからz、ただしeからw以外を除く([e-w])
[a-z-]
aからzまたは-

定義済み文字クラス

.
任意の文字(マルチラインモードの時には改行文字にもマッチ)
\s
空白文字 ([ \t\r\n])
\S
非空白文字 ([^ \t\r\n])
\w
単語構成文字 ([a-zA-Z0-9_])
\W
非単語構成文字 ([^a-zA-Z0-9_])
\d
数字 ([0-9])
\D
数字以外 ([^0-9])

境界

^
行頭
$
行末
\A
入力の先頭
\Z
最後の行末文字を除く入力の末尾
\z
入力の末尾
\b
単語境界
\B
非単語境界

数量子

最長一致

*
0回以上
+
1回以上
?
0または1回
{n}
n回
{n,}
n回以上
{n,m}
n回以上m回以下

最短一致

*?
0回以上
+?
1回以上
??
0または1回
{n}?
n回
{n,}?
n回以上
{n,m}?
n回以上m回以下

強欲

*+
0回以上
++
1回以上
?+
0または1回
{n}+
n回
{n,}+
n回以上
{n,m}+
n回以上m回以下

グループ

|
選択
(regex)
グループ(前方参照あり)
(?:regex)
グループ(前方参照なし)
(?=regex)
幅ゼロの肯定先読み
(?!regex)
幅ゼロの否定先読み
(?<=regex)
幅ゼロの肯定後読み
(?<!regex)
幅ゼロの否定後読み
(?>regex)
独立した正規表現
\1 \2 \3 \4 \5 \6 \7 \8 \9

前方参照

\に続く一桁の数字は必ず前方参照になります。二桁目以降は参照するパターンがある場合に限り前方参照になります。たとえば、\12は12番目のパターンがあればそれを参照しますが、なければ1番目のパターンを参照し2が続くと解釈されます。

モード

以下のモードがあります。モードはマクロから正規表現を使用する場合にしか指定できません。

複数行モード
^と$が各行の始まりと終わりにマッチするようになります。
.が改行にもマッチするモード
.が改行文字にもマッチするようにします。
大文字と小文字を同一視モード
大文字と小文字を区別しないようにします。