正規表現演算子
正規表現で用いられる演算子を学ぼう。
正規表現では、特殊な意味を持つ文字があります。 正規表現を使いこなすために、きちんとマスターしておきましょう。
演算子の種類
メタ文字
| 文字 | 働き |
|---|---|
| \ | エスケープ文字 |
| ^ | 文字列(または行)の先頭 |
| $ | 文字列(または行)の末尾 |
| . | 改行以外の任意の1文字 |
| | | いずれかを選択 |
| ? | 直前の文字列0回または1回のくり返し |
| * | 直前の文字列0回以上のくり返し |
| + | 直前の文字列1回以上のくり返し |
| {m} | 直前の文字列m回のくり返し |
| {m,} | 直前の文字列m回以上のくり返し |
| {m,n} | 直前の文字列m回以上n回以下のくり返し |
| [ ] | 文字クラス |
| ( ) | サブパターン |
| 文字 | 働き |
|---|---|
| \ | エスケープ文字 |
| ^ | 否定 |
| - | 文字の範囲を表す |
^は、文字クラスを示す[] の先頭で使うと、否定を表します。 例えば、[^/]のように用い、/以外の1文字を表します。
-は、文字クラスを示す[] の中で使うと、 連続した文字列の中の1文字を表します。 例えば、[0-9]のように用い、数字1文字を表します。
特殊文字
正規表現では、文字列はもちろんですが、 コンピュータ内部で用いられている制御用記号(タブ、改行など) を検索対象とすることもできます。
| 文字 | 働き |
|---|---|
| \文字 | エスケープ |
| \n | 改行 |
| \r | 復帰 |
| \t | タブ |
| \ooo | 8進数 |
| \xhh | 16進数 |
\は、直後の文字をエスケープします。 例えば、\. のように使います。 . は単独では任意の1文字を表すのですが、 \ をつけることによって、文字としての . を表します。
文字型の指定
メタ文字を組み合わせれば、ほとんどのパターンに対応できるのですが、 良く利用するパターンについては、既に特定の記号が割り当てられています。 これらを覚えておくと、正規表現の記述が簡潔になります。
| 文字 | 働き |
|---|---|
| \d | 数字 |
| \D | 数字以外の文字 |
| \s | 空白 |
| \S | 空白以外の文字 |
| \w | 単語構成文字(数字、アルファベット、アンダーバー) |
| \W | 単語構成文字以外の文字 |
これを利用すると、例えば数字1文字にマッチする正規表現は、 \d と書くことができます。 これは、[0-9] と同じ意味になります。
正規表現の使いかたの例
正規表現を利用すると、文字列のパターンを検索することができます。 例えば、URLのパターンは、正規表現を用いると、 ^http://[^/]+/$ と書くことができます。 (厳密にはもっと厳しく条件判定する必要があります。)
Copyright (C) 2003-2018. PHP で WEB 作成 All rights reserved.