正規表現演算子
正規表現で用いられる演算子を学ぼう。
正規表現では、特殊な意味を持つ文字があります。 正規表現を使いこなすために、きちんとマスターしておきましょう。
演算子の種類
メタ文字
文字 | 働き |
---|---|
\ | エスケープ文字 |
^ | 文字列(または行)の先頭 |
$ | 文字列(または行)の末尾 |
. | 改行以外の任意の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.