詳説 正規表現 Part1

メタ文字について

^cat

行頭のcatという文字にマッチする。

 

cat$

行末のcatという文字にマッチする。

 

gr[ea]y

greyかgrayという文字にマッチする。

 

[0-9a-zA-Z]

数字、英字の大文字、小文字のどれかにマッチする。

[ ] の中にある !.? などはメタ文字ではない。

 

q[^u]

qの後にu以外の文字が続く文字列にマッチする。

[^・・・] 否定文字クラスは リストに含まれていない文字にマッチする。

 

03.19.76

. は任意の1文字にマッチするので、03/19/76などはマッチする。

 

Bob | Robert

Bob か Robert という文字列にマッチする。

このように結合された部分正規表現は選択肢と呼ばれる。

 

\<cat\>

catという単語にマッチする。

\< や \> はメタ文字列といい、単語の先頭と末尾という位置にマッチする。

 

colou?r

color か colour という文字列にマッチする。

? は量指定子で、必要最小数が0、マッチ試行の上限は1である。

 

a*

a や aa や aaa という文字列にマッチする。a がなくても構わない。

* は量指定子で、必要最小数が0、マッチ試行の上限は無制限である。

 

a+

a や aa や aaa という文字列にマッチする。a は最低限1つは必要。

+ は量指定子で、必要最小数が1、マッチ試行の上限は無制限である。

 

[a-zA-z]{1,5}

英字の大文字、小文字が最低1文字あればよし、最大5文字までマッチする。

{min,max} というメタ文字列は範囲指定繰り返し制御と呼ばれる。

 

([a-z])([0-9])\1\2

\1 は [a-z] がマッチしたテキスト、 \2 は [0-9] がマッチしたテキストを参照する。

\1 や \2 を後方参照という。

 

[a-zA-z_][a-zA-Z_0-9]*

先頭文字として英字の大文字、小文字とアンダーバーが認められ、2文字目以降としては、それに加えて数字も認められる識別子のような文字列にマッチする。

 

"[^"]*"

ダブルクォーテーションで囲まれた文字列にマッチする。