正規式を作成する構文とルールに関するリフレッシャー。
ステージングされたWebサイトの増分インデックスの設定も参照してください。
正規式の構文
テキスト |
1 文字 |
|
[文字] |
文字クラス:1文字 |
|
[^chars] |
文字クラス:文字なし |
|
text1|text2 |
代替:text1またはtext2 |
|
量指定子 |
||
? |
前のテキストの0または1 |
|
* |
前のテキストの0またはN(N > 1) |
|
+ |
前のテキストの1またはN(N > 1) |
|
グループ |
||
(text) |
代替の境界を設定するため、またはN番目のグループがRewriteRuleのRHSで使用される逆参照を作成するための、テキストのグループ化($N) |
|
アンカー |
||
^ |
ラインアンカーの開始。 |
|
$ |
行アンカーの終了。 |
|
エスケープ |
||
|
\char |
特定の文字をエスケープします。 例えば、「。[] ()など。 |
正規式に関するルール
通常の式は、以下に示す特殊文字の1つではなく、それ自体に一致する1文字の正規文字です。
バックスラッシュ(¥)の後に任意の特殊文字が続く場合は、その特殊文字自体に一致する1文字の正規式を指定します。 特殊文字には次のものがあります。
.
(ピリオド)、 *
(アスタリスク)、 ?
(疑問符)、 +
(プラス記号)、 [
(左角括弧)、 |
(縦線)、 \
(バックスラッシュ)は、角括弧内に表示される場合を除き、常に特殊文字です。
^
(キャレットまたはサーカムフレックス)は、正規式の先頭、または角括弧の組み合わせの左にすぐ後にある場合に特殊です。
$
(ドル記号)は、正規式の終わりに特別な値です。
.
(ピリオド)は、改行以外の補助コードセット文字を含め、任意の文字と一致する1文字の正規式です。
[ ]
(左角括弧と右角括弧)で囲まれた、空でない文字列は、その文字列内の1文字(補助コードセット文字を含む)と一致する1文字の正規式です。
ただし、文字列の最初の文字が^
(サーカムフレックス)の場合、1文字の正規式は、補助コードセット文字を含む任意の文字と一致します。ただし、改行文字と文字列内の残りの文字は例外です。
^
は、文字列内で最初に出現する場合にのみ、この特別な意味を持ちます。 -
(マイナス記号)を使用して、連続する文字の範囲(補助コードセット文字を含む)を示すことができます。 例えば、[0-9]は[0123456789]と同じです。
範囲を指定する文字は、同じコードセットに含まれている必要があります。 異なるコードセットの文字が使用されている場合、その範囲を指定する文字の1つが一致します。 -
は、最初(最初の^
の後、存在する場合)または文字列内の最後(存在する場合)に発生する場合、この特別な意味を失います。 ]
(右角括弧)は、文字列がその中の最初の文字の場合、最初の^
の後(存在する場合)に終了しません。 例えば、[]a-f]
は、]
(右角括弧)またはASCII文字a ~ fのいずれかと一致します。 上記の特殊文字として一覧に示した4文字は、このような文字列の中でその文字自体を表します。
1文字の正規式から正規式を作成する際のルール
次のルールを使用して、1文字の正規式から正規式を作成できます。
*
(アスタリスク)が続く正規式は、1文字の正規式の0回以上の繰り返しと一致する正規文字です。これは、補助コードセット文字の場合があります。 選択肢がある場合、一致を許可する左端の最も長い文字列が選択されます。?
(疑問符)が続く正規式は、1文字の正規式の0回または1回の出現と一致する正規で、補助コードセット文字の場合があります。 選択肢がある場合、一致を許可する左端の最も長い文字列が選択されます。+
(プラス記号)が続く正規式は、1文字の正規式の1回以上の出現と一致する正規で、補助コードセット文字の場合もあります。 選択肢がある場合、一致を許可する左端の最も長い文字列が選択されます。{m}
、{m,}
、または{m,n}
が続く正規式は、1文字の正規式の出現範囲に一致する正規です。 mとnの値は、256以下の負の整数でなければなりません。{m}
はちょうどm個の繰り返しと一致します。{m,}
は最低m回の繰り返しと一致します。{m,n}
はm ~ nの任意の数の値と一致します。 選択肢が存在する場合は常に、正規式は可能な限り多く一致します。|
(垂直パイプ)が続く正規式は、最初の正規式(垂直パイプの前)または2番目の正規式(垂直パイプの後)に一致する正規式です。また、線の最初のセグメント、最後のセグメント、またはその両方に一致するように正規式を制限することもできます。
^
(サーカムフレックス)があると、その正規式が線の最初のセグメントに一致するように制限されます。$
(ドル記号)があると、その正規式が線の最後のセグメントに一致するように制限されます。複雑でかっこで囲まれた正規式の代わりに使用できる、定義済みの文字クラス名がいくつかあります。 例えば、1文字の正規式[0-9]、または文字クラス1文字の正規式[[:digit:]]で表す数字を指定できます。
定義済みの文字クラスとその意味は次のとおりです。
文字クラス |
意味 |
---|---|
[[:alnum:]] |
英字または数字。 |
[[:alpha:]] |
英字文字。 |
[[:空白:]] |
スペースまたはタブ。 |
[[:cntrl:]] |
制御コード;印刷しない文字。 |
[[:digit:]] |
数字。 |
[[:graph:]] |
スペース以外の任意の印刷文字。 |
[[:lower:]] |
小文字の英字文字。 |
[[:print:]] |
スペースを含む任意の印刷文字。 |
[[:punct:]] |
句読点 |
[[:スペース:]] |
スペース、タブ、行末などの空白。 |
[[:upper:]] |
大文字の英字文字。 |
[[:xdigit:]] |
大文字または小文字の16進数値。 |
2つの特殊文字クラス名は、開始のヌルスペースと単語の末尾に一致します。 つまり、実際の文字とは一致しません。 1つの単語は、英字、数字またはアンダースコア(_)の任意のシーケンスと見なされます。
文字クラス |
意味 |
---|---|
[[:<:]] |
単語の開始 |
[[:>:]] |
語末 |