このページの内容

3.1 基本構造

正規表現では、文字「.?*+{|()[\^$」は特殊文字で、以下に示す用途があります。それ以外はすべて通常の文字で、それぞれの通常の文字は、自分自身に一致する正規表現になります。

ピリオド「.」は任意の1文字に一致します。「.」が符号化エラーに一致するかどうかは未規定です。

正規表現の後ろには、いくつかの繰り返し演算子を付けられます。「{」で始まる演算子を区間式と呼びます。

‘?’

直前の項目は省略可能で、最大1回一致します。

‘*’

直前の項目が0回以上一致します。

‘+’

直前の項目が1回以上一致します。

‘{n}’

直前の項目がちょうどn回一致します。

‘{n,}’

直前の項目がn回以上一致します。

‘{,m}’

直前の項目が最大m回一致します。これはGNU拡張です。

‘{n,m}’

直前の項目がn回以上、m回以下一致します。

空の正規表現は空の文字列に一致します。2つの正規表現を連結できます。連結した正規表現は、各式にそれぞれ一致する2つの部分文字列を連結してできる任意の文字列に一致します。

2つの正規表現を、中置演算子「|」で結合できます。結果の正規表現は、2つの式のいずれかに一致する任意の文字列に一致します。この2つの式を選択肢と呼びます。

繰り返しは連結より優先され、連結は選択より優先されます。式全体を丸括弧で囲むと、この優先順位を変更して部分式を作れます。対応する左括弧のない「)」は、その文字自身だけに一致します。

すべての文字列が有効な正規表現になるわけではありません。「問題のある正規表現」を参照してください。