Top > 正規表現

正規表現

修正 @ Dec 30, 2005 05:00:00

Tag: Web Program

正規表現とは

文字列のパターンを一つの形式で表現する表記法。主に文字列の検索・置換を行なうときに利用される。

参考リンク

Regular Expression(Riue ちゃんの正規表現講座)
読み物調で分り易い。初心者におすすめ。
正規表現メモ
grep,egrep,sed,awk,perl,python,ruby,gawk,Tcl,PCRE,PHP,.NET Framework,Java,POSIXの各ツールで使える演算子辞典。
正規表現最新リンク集
関連リンク集。
PHPパターン構文
PHPで使える正規表現

文法

以下は、Perl/PHPでの表現。

基本

正規表現意味
A文字A
ABC文字列ABC
.任意の1文字
A*0文字以上のA
A?0文字または1文字のA
A+1文字以上のA
^AAで始まる文字列
A$Aで終わる文字列
[ABC]A、B、Cのいずれか1文字
[A-C]A~Cまでのいずれか1文字
[^ABC]A、B、Cのいずれでもない任意の1文字
ABC|DEF|GHIABCまたはDEFまたはGHI
A{2}2個のA(AA)
A{2|}2個以上のA(AA、AAA、AAAA、...)
A{2|3}2個~3個のA(AA、AAA)

メタキャラクタ

「\」+ 文字(列)は特殊な意味を持つ。

特殊文字の表現

表記意味
\aアラーム、ベル文字 (16進 07)
\cx"control-x" ただし x はあらゆる文字
\eエスケープ (16進 1B)
\f改ページ (16進 0C)
\n改行 (16進 0A)
\r復帰 (16進 0D)
\tタブ (16進 09)
\xhh16進数で hh の文字
\ddd8進数で ddd の文字または後方参照
[\b]バックスペース (文字クラスの中でのみ有効)

文字型の表現

表記意味
\d10進数字
\D10進数字でない全ての文字
\s空白文字
\S空白文字以外の文字
\w単語構成文字
\W単語構成文字以外

言明

検索時の拘束条件を指定する。(文字クラス外のみ)

表記意味
\b単語の境界
\B単語の境界でない
\A検索対象の始まり (複数行モードとは独立)
\Z検索対象の終わりまたは終端の改行 (複数行モードとは独立)
\z検索対象の終わり (複数行モードとは独立)

クラス

クラス名意味
[:alnum:]アルファベットと数字
[:alpha:]アルファベット
[:lower:]アルファベットの小文字
[:upper:]アルファベットの大文字
[:digit:]10進数字
[:xdigit:]16進数字
[:blank:]空白文字(スペース、タブ等)
[:space:]スペース、タブ、改ページ
[:punct:]句読点
[:cntrl:]制御文字
[:graph:]印字可能かつ表示可能な文字(スペースは含まれない)
[:print:]印字可能なキャラクタ(=制御文字以外)