◇主要な正規表現 (参考文献:「たのしいUNIX」坂本文(1990)アスキー) -------------------- *行頭を指定 ^ ☆すべて半角!! ^aya 行頭がayaの行にマッチ cf.aya と文字列そのままをパタンとして記述すると aya を含むすべての行にマッチ *行末を指定 $ sake$ 行末がsakeの行にマッチ **応用 ^aya$ ayaだけを含む行(ただしこの表記だと改行コードがはいらないので注意) ^aya\n$ (エスケープ文字) ^$ 空行 *任意の1文字 . ^.$ 1文字だけからなる行 *あるグループの中の1文字 [xyz] "文字クラス" *文字クラスの否定(あるグループの中の文字のいずれでもない1文字) [^x] xでない1文字 [^xyz] xでもyでもzでもない1文字 ☆文字としての^を否定するときは\を前につける[^\^] *0個以上の繰返し * a *b aのあとにスペースが0個以上でb e* eが0個以上(意味がない!!) *1個以上の繰返し + a+ aが1個以上 ^a+ 行頭にaが1個以上 *0個または1個 ? aya ?aya ayaayaまたはaya aya *N個の繰返し {N} a{5} aaaaa **応用 任意の文字列 .* .* 任意の文字が0個以上 ^s.*beer$ sで始まりbeerで終わる。間には任意の文字が0個以上 *文字列の繰返し (moji)+ (moji)* mojiが1/0回以上(moji,mojimoji,mojimojimoji,...) cf.[moji]+/*だとmかoかjかiかの1文字の繰返し (aya){5} ayaayaayaayaaya *文字列の選択 (mojiA|mojiB|mojiC) mojiAまたはmojiBまたはmojiC -- ○文字クラスの略記法 \d [0-9] [0123456789] 数字1文字 \D [^0-9] [^0123456789] 数字以外の1文字 *中央のハイフンも略記法 \w [a-zA-Z0-9_] [abc...zABC....Z0123456789_] 単語を構成する文字1文字 \W [^a-zA-Z0-9_] [^abc...zABC....Z0123456789_] その否定 \s [ \r\t\n\f] 空白文字(スペース1個、CR復帰、タブ、改行、改ページ) \S [^ \r\t\n\f] 空白文字以外の1文字 \b 単語境界 /\bFred\b/はFredにマッチ、Fredrick,alFredは不可 --------------- 練習問題 (「初めてのPerl」 p110より) a)1個以上のaの後ろに任意個のb (任意個=0個以上) b)任意個の\の後ろに任意個の* c)$whateverの値である文字列が3回連続 d)任意の文字または改行が5個 e)同じ単語(\wの文字クラスの並び)が2回(以上)連続