どうにかなるBLOGJump to navigationPHP 正規表現の基本 (preg_match)正規表現をまとめてみる。preg_match で使われる正規表現の書き方の前にまずは、<検索対象文字列が1行か?それとも複数行か?>文字列の中からパターンに合致する部分を探し出す場合、その文字列が1行(改行文字が1つ)なのか、複数行(改行文字が複数)なのかで、マッチ演算子を適切に指定。preg_match(\"/パターン/\", 調べる文字列);\"/パターン/\" //文字列の1行目のみを調べる\"/パターン/g\" //複数行を調べる\"/パターン/s\" //改行文字を無視し、1行とみなして調べるついでに、\"/パターン/i\" //文字列の大文字・小文字を区別しない\"/パターン/is\" //大文字・小文字を区別せず、1行とみなして調べる<基本>preg_match は、文字列中に現れた最初のパターンのみを検出。■文字・文字列・「a」 にマッチpreg_match(\"/a/\", $string);・「ab」 にマッチpreg_match(\"/ab/\", $string);■先頭・末尾・の先頭の 「a」 にマッチpreg_match(\"/^a/\", $string);・行の末尾の 「a」 にマッチpreg_match(\"/a$/\", $string);・行の先頭の 「a」 にマッチ(改行文字が現れる度に次の文字を調べる)preg_match(\"/^a/g\", $string);・行が 「abcde」 にマッチpreg_match(\"/^abcde$/\", $string);・文字列の先頭の 「a」 にマッチpreg_match(\"/$Aa/\", $string);・文字列の末尾の 「a」 にマッチpreg_match(\"/a$Z/\", $string);■繰り返し・0個以上の 「a」preg_match(\"/a*/\", $string);・1個以上の 「a」preg_match(\"/a /\", $string);・0個か1個の 「a」preg_match(\"/b?/\", $string);・「a」に続いて、0個以上の 「b」preg_match(\"/ab*/\", $string);・「a」に続く0個以上の 「b」で、最も短かいものpreg_match(\"/ab*/\", $string);・1個から3個続きの「a」preg_match(\"/a{1,3}/\", $string);・3個続きの「a」preg_match(\"/a{3}/\", $string);・3個以上の「a」preg_match(\"/a{3,}/\", $string);■任意の1文字・(改行文字を除く)任意の1文字preg_match(\"/./\", $string);・(改行文字を含む)任意の1文字preg_match(\"/./s\", $string);・「a」 と 「b」 に任意の1文字(改行除)が挟まれているpreg_match(\"/a.b/\", $string);■[ ] 内の任意の1文字・「a」 か 「b」 どちらか1文字preg_match(\"/[ab]/s\", $string);・「a」 から 「z」 の1文字。アルファベット小文字preg_match(\"/[a-b]/s\", $string);・「A」 から 「Z」 の1文字。アルファベット大文字preg_match(\"/[A-Z]/s\", $string);・アルファベットの1文字preg_match(\"/[a-zA-Z]/s\", $string);・アルファベット以外の1文字preg_match(\"/[^a-zA-Z]/s\", $string);■エスケープシーケンス?t タブ?n 改行?w アルファベットとアンダースコア?W アルファベットとアンダースコア以外?s 空白文字?S 空白文字以外?12 ASCHII文字の8進数表記?x811 ASCHII文字の16進数表記