正規表現を作成するには、特定の構文、つまり特殊文字と構造ルールを使用する必要があります。たとえば、次の正規表現は、nnn-nnn-nnnn というパターンで 10 桁の電話番号と一致します。
\d{3}-\d{3}-\d{4}
次の表は、正規表現で使用される一般的な特殊文字の一部を示しています。特殊文字は次のように分類されます。
| 文字数 | 説明 |
|---|---|
| アンカー | |
| ^ | (キャレット)正規表現が探しているテキスト行または文字列の先頭を照合します。たとえば、コンテンツ ルールで、件名を対象に次の正規表現が指定されているとします。 ^abc このコンテンツ ルールは、件名が abc で始まるメールを取得します。 |
| $ | (ドル)正規表現が探しているテキスト行または文字列の末尾を照合します。たとえば、コンテンツ ルールで、件名を対象に次の正規表現が指定されているとします。 xyz$ このコンテンツ ルールは、件名が xyz で終わるメールを取得します。 |
| メタ文字 | |
| (ドット)改行を除く任意の 1 文字に一致します。 | |
| | | (パイプ)いずれかの文字列を照合することを示します。つまり、「または」を意味します。たとえば、 cat|dog は cat または dog を照合します。 |
| \ | その次の文字が、特殊文字ではなくリテラルであることを示します。次に例を示します。 \. は任意の文字(ピリオド記号)ではなく、リテラルのピリオドを照合します。 |
| 文字クラス | |
| [...] | 文字セット内の任意の文字を照合します。セット内の先頭文字と末尾文字はハイフンで区切ります。次に例を示します。 [123] は 1、2、3 のいずれかの数字を照合します。 [a-f] は a~f の任意の文字を照合します。 注: コンテンツ コンプライアンス ポリシーの正規表現では大文字と小文字が区別されます。 |
| [^...] | 文字セット外の任意の文字を照合します。次に例を示します。 [^a-f]は a~f 以外の任意の文字を照合します。 注: コンテンツ コンプライアンス ポリシーの正規表現では大文字と小文字が区別されます。 |
| [:alnum:] | 次の半角英数字(文字または数字)を照合します。 a ~ z、A ~ Z、または 0 ~ 9 注: この文字クラスを正規表現で使用するときは、[[:alnum:]] のように、さらに別の角かっこで囲む必要があります。 |
| [:alpha:] | 次の半角英字(文字)を照合します。 a ~ z または A ~ Z 注: この文字クラスを正規表現で使用するときは、[[:alpha:]] のように、さらに別の角かっこで囲む必要があります。 |
| [:digit:] | 次の数字を照合します。 0 ~ 9 注: この文字クラスを正規表現で使用するときは、[[:digit:]] のように、さらに別の角かっこで囲む必要があります。 |
| [:graph:] | 表示される文字のみ、つまり、スペース、制御文字などを除く任意の文字を照合します。 注: この文字クラスを正規表現で使用するときは、[[:graph:]] のように、さらに別の角かっこで囲む必要があります。 |
| [:punct:] | 次の句読文字および記号を照合します。 ! " # $ % & ' ( ) * + , \ -. / : ; < = > ? @ [ ] ^ _ ` { | } 注: この文字クラスを正規表現で使用するときは、[[:punct:]] のように、さらに別の角かっこで囲む必要があります。 |
| [:print:] | 表示される文字とスペースを照合します。 注: この文字クラスを正規表現で使用するときは、[[:print:]] のように、さらに別の角かっこで囲む必要があります。 |
| [:space:] | スペース、タブ、改行など、すべての空白文字を照合します。 注: この文字クラスを正規表現で使用するときは、[[:space:]] のように、さらに別の角かっこで囲む必要があります。 |
| [:word:] | 任意の単語文字、つまり、任意の文字、数字、またはアンダースコアを照合します。 a ~ z、A ~ Z、0 ~ 9、または _ 注: この文字クラスを正規表現で使用するときは、[[:word:]] のように、さらに別の角かっこで囲む必要があります。 |
| 省略文字クラス | |
| \w | 任意の単語文字、つまり、任意の文字、数字、またはアンダースコアを照合します。 a ~ z、A ~ Z、0 ~ 9、または _ [:word:] と同じです。 |
| \W | 任意の非単語文字、つまり、文字、数字、またはアンダースコア以外の任意の文字を照合します。 [^[:word:]] と同じです。 |
| \s | 任意の空白文字と一致します。たとえば、この文字を使用して、フレーズ内の単語間のスペースを指定します。 stockstips は stock tips というフレーズを照合します。 [:space:] と同じです。 |
| \S | 空白文字以外の任意の文字を照合します。 [^[:space:]] と同等です。 |
| \d | 0 ~ 9 の任意の数字を照合します。 [:digit:] と同等 |
| \D | 数字 0 ~ 9 以外の任意の文字を照合します。 [^[:digit:]] と同じです。 |
| Group | |
| (...) | 式の部分をグループ化します。グループ化を使用すると、グループに数量子を適用したり、グループの前後の文字クラスを照合したりできます。 |
| 量指定子 | |
| {n} | 直前の表現がちょうど n 回出現した場合を照合します。次に例を示します。 [a-c]{2} は、a~c の任意の文字が 2 回連続して出現した場合のみを照合するので、ab や ac は照合しますが、abc や aabbc は照合しません。 |
| {n,m} | 直前の表現が n ~ m 回出現した場合を照合します。次に例を示します。 [a-c]{2,4} は、a~c の文字が 2 ~ 4 回連続して出現した場合のみを照合するので、ab や abc は照合しますが、aabbc は照合しません。 |
| ? | 直前の文字または式が 0 回または 1 回一致することを示します。これは、範囲 {0,1} と同じです。たとえば、次の正規表現があるとします。 colou?r これは colour または color を照合します。? によって文字 u が任意になっているためです。 |