Show Menu
トピック×

正規表現

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