正規表現演算子

正規表現で用いられる演算子を学ぼう。

正規表現では、特殊な意味を持つ文字があります。 正規表現を使いこなすために、きちんとマスターしておきましょう。

演算子の種類

メタ文字

メタ文字(文字クラスの外)
文字 働き
\ エスケープ文字
^ 文字列(または行)の先頭
$ 文字列(または行)の末尾
. 改行以外の任意の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.