正規表現

基本的な概念

しばしばパターンと呼ばれる正規表現は、文字列群を表現する表現法である。通常、全ての要素を列挙することなく文字列群を簡潔に表現するのに用いられる。例えば、HandelHendelHaendel という三つの文字列を含む集合は "H(e|ae?)ndel" というパターンで表現できる(あるいは、パターンは個々の三つの文字列にマッチすると言われる)。ほとんどの形式では、もし特定の集合にマッチする何らかの正規表現が存在すれば、無限の数のそのような表現がある。ほとんどの形式では正規表現を構築するのに次の演算子を提供している。
選言
縦棒は選択肢を区切る。例えば、"gray|grey" は gray または grey にマッチし、これは普通 "gr(a|e)y" に短縮される。
グループ分け
丸括弧はスコープと演算子の優先順位を定義するのに用いられる。例えば、"gr(a|e)y" では "(a|e)" の部分で a または e を示し、全体で gray または grey にマッチする。
量化
文字やグループの後ろの量化子は、直前の表現が何回現れることが許されるかを指定する。非常によく使われる量化子は ?*+ である。
?
疑問符は直前の表現が0個か1個あることを示す。例えば、"colou?r" は colorcolour にマッチする。
*
アスタリスクは直前の表現が0個以上あることを示す。例えば、"go*gle" は gglegoglegoogleなどにマッチする。
+
プラス符号は直前の表現が1個以上あることを示す。例えば、"go+gle" は goglegoogle などにマッチするが、ggleにはマッチしない。
これらの構文は任意の複雑な表現を形成するために組み合わされて使用される。

戻る