
正規表現

(1)メタキャラクタ
    \   直後の文字をエスケープ
    .   任意の一文字とマッチ
    ^   行の先頭にマッチ
    $   行の末尾にマッチ
    *   直前の要素に0回以上マッチ
    +   直前の要素に1回以上マッチ
    ?   直前の要素に，0回または1回マッチ
  [...] []内のどれか1つにマッチ([]内の先頭に^がある場合，[]内以外の文字にマッチ)
  (...) 正規表現のグループ化
    |   前後どちらかの正規表現にマッチ

(2)エスケープシーケンス
    \n  改行文字
    \r  復帰文字
    \t  タブ
    \f  改ページ文字

(3)文字クラス
    \d  数字([0-9]と同等)
    \D  数字以外([^0-9]と同等)
    \w  単語構成文字([a-zA-Z_0-9]と同じ)
    \W  単語構成文字以外([^a-zA-Z_0-9]と同じ)
    \s  空白文字([ \t\f]と同じ)
    \S  空白文字以外([^ \t\f]と同じ)
    \l  空白文字 + 改行文字([ \t\f\r\n]と同じ)

(4)量指定子
  {n,m} n回以上，m回以下
  {n,}  n回以上
  {n}   ちょうどn回
   *    0回以上({0,}と同じ)
   +    1回以上({1,}と同じ)
   ?    0回または1回({0,1}と同じ)
   (*)量指定子の後に?を付けたときは，最短マッチを行う

(5)後方参照
   \1  １番目の括弧で囲まれた要素にマッチした文字列(以下\2〜\9も同様)
   \+  括弧で囲まれた要素に最後にマット下文字列
   \&  マッチした文字列全体
   \`  マッチした文字列の前にある文字列
   \'  マッチした文字列の後ろにある文字列
   (*)置換時は，\の代わりに$も利用可能

(6)ゼロ幅表明
   \b  単語境界
   \B  単語境界以外
   \A  テキストの先頭
   \z  テキストの末尾
   \Z  テキストの末尾または改行の直前
   
   \=A 選択範囲の先頭
   \=z 選択範囲の末尾
   \=^ 選択範囲の各行の先頭
   \=$ 選択範囲の各行の末尾

(7)拡張正規表現
   (?#text)    コメント
   (?:...)     後方参照用の保存を行わないカッコ
   (?=...)     lookahead assertion
   (?!...)     lookahead assertionの否定
   (?<=...)    lookbehind assertion
   (?<!...)    lookbehind assertionの否定
   (?>...)     バックトラックしない
   (?(COND)IFTRUE|IFFALSE)  条件付き展開
   (?isS-isS)    パターン修飾子のON/OFF
   (?isS-isS:)   後方参照用の保存を行わないカッコにパターン修飾子を指定

(8)POSIX文字クラス
   [:ascii:]   0〜127までの文字

(9)パターン修飾子
   i: 大文字小文字を区別しない
   s: .に改行文字にもマッチさせる
   S: \sに改行文字にもマッチさせる

