正規表現の記述の仕方

正規表現Regular Expression(略してregexpまたはregex)はPHPやPerl、JavaやJavaScriptなど多くの言語で文字列のパターンマッチ検索のために使用される。

言語によって一部内容が変わってくるが、ここではPHPやPerlでの正規表現について記述。

マッチしない入力データの処理は、マッチする入力データよりもはるかに時間がかかるので曖昧な検索ではなく、できるだけ明確にマッチさせるよう記述したほうがいい。

パターンマッチ演算子
メタ文字 内容
\ エスケープ
! 否定
. 任意の1文字
[ ] 括弧内のいずれかの文字。文字クラス[a-zA-Z0-9]
[^ ] 括弧内のいずれかの文字以外
| または
( ) 複数の文字列をまとめた形でパターンマッチを行います。またこのパターングループでマッチした文字列は、特殊変数 ( $ + 数字 ) に、マッチした順に代入することができます。( ex. $1, $2, $3, … )
^ 行頭
$ 行末

量指定子
メタ文字 内容
? 直前の文字の0回または1回の繰り返し
* 直前の文字の0回以上の繰り返し
+ 直前の文字の1回以上の繰り返し
{n} 直前の文字をn回繰り返し
{n,} 直前の文字をn回以上繰り返し
{n,m} 直前の文字をn回以上、m回以下繰り返し

パターンマッチ演算子の修飾子
メタ文字 内容
g 繰り返しマッチする
i 大文字と小文字の区別をしない
o 変数展開を1度だけ行う
m 文字列を複数行として扱う
s 文字列を単一行として扱う
x 拡張正規表現を行う

文字クラスの略記
メタ文字 内容
\d 数値のパターンを表します
\s スペース、タブなどの空白文字のパターンを表します
\w 大文字、小文字のアルファベット、数値、アンダースコアのパターンを表します
\D 数値以外の文字のパターンを表します
\S スペース、タブなどの空白文字以外の文字のパターンを表します
\W 大文字、小文字のアルファベット、数値、アンダースコア以外の文字のパターンを表します

TOPへ
戻る