正規表現とは     Last modified: May 15, 2002

 おおざっぱに言えば,正規表現 regular expression とは,ある規則に従う文字列を指定(識別)するための規則である。

 例えば,「A で始まって 9 で終わるような文字列」とか,「文字列の先頭にアルファベットがある行」というような指定をしたいことがある。このようなときには,可能な全ての場合を列挙するわけにはいかないので,特定の文字で一般的な文字列を指定する方法をとることになる。

 正規表現が使われるのは文字列を処理する関数やパターンの指定のときである。例えば,  $0 ~ /this is reg\. exp\./ というパターンは,入力した行の中に,this is reg. exp. という文字列が含まれているとき「真値」を返す。

 正規表現に使われる文字(例えば,上の例の \ など)とその意味は以下のようになる。

^ 文字列の先頭を表す。
例:^abc というのは,先頭の 3 文字が abc である文字列にマッチする。
$ 文字列の末尾を表す。
例:987$ というのは,最後の 3 文字が 987 である文字列にマッチする。
. 改行文字を除く任意の 1 文字に一致する。
例:a.xax の間に任意の 1 文字がある 3 文字(たとえば ayxa9x など)にマッチする。
[ ] [ ]含まれる 1 文字にマッチする。連続する文字は-でつないで指定する。
例:[abC] は,abC のいずれかを表す。[0-9] は,数字 1 文字を表す。
[^ ] [ ]含まれない 1 文字にマッチする。
例:[^0-9A-Za-z] は,英数字以外の 1 文字にマッチする。
| 「または」を意味する。
例:^A|[0-9] 行頭の A か 数字にマッチする。
* この記号の前にある文字の0 回以上の繰り返しを意味する。
例:ab*xaxabxabbxabbbx などにマッチする。
+ この記号の前にある文字の1 回以上の繰り返しを意味する。
例:ab+xabxabbxabbbx などにマッチする。
? この記号の前にある文字の 1 回もしくは 0 回の繰り返しを意味する。
例:ab?xaxabx のいずれかにマッチする。
\ この文字の後に続く文字をそのままの意味で使用する。
例:\. はピリオドを表す。\* はアスタリスクを表す。


・ 直前のページへ戻る  ・ E-mail to Shigenobu AOKI