正規表現 基礎編

preg_matchを使った基礎の正規表現

基本の正規表現

PHP

// fooが含まれていれば、TRUE preg_match('/foo/', $str); // fooで始まる場合、TRUE 前方一致 preg_match('/^foo/', $str); // fooで終わる場合、TRUE 後方一致 preg_match('/foo\z/', $str); // fooに一致した場合、TRUE 完全一致 preg_match('/^foo\z/', $str); // 空の場合、TRUE preg_match('/^\z/', $str); // foobarまたはfoobazの場合、TRUE preg_match('/^foo(bar|baz)\z/', $str); // foまたはfooの場合、TRUE ?:直前の表現が0コか1コ preg_match('/^foo?\z/', $str); // fooa、foob、foocなどの場合、TRUE .:任意の1文字 preg_match('/^foo.\z/', $str); // foo、fooa、fooabなどの場合、TRUE *:直前の表現が0コ以上 preg_match('/^foo.*\z/', $str); // foo、foofoo、foofoofooなどの場合、TRUE preg_match('/^(foo).*\z/', $str); // fooa、fooabなどの場合、TRUE +:直前の表現が1コ以上 preg_match('/^foo.+\z/', $str); // foofoo、foofoofooなどの場合、TRUE preg_match('/^(foo).+\z/', $str); // fooとbarが含まれる場合、TRUE preg_match('/(?=.*foo)(?=.*bar)/', $str); // fooとbarとbazが含まれる場合、TRUE preg_match('/(?=.*foo)(?=.*bar)(?=.*baz)/', $str); // 肯定先読み fooの後がbarの場合、TRUE preg_match('/foo(?=bar)/', $str); // 否定先読み fooの後がbar以外の場合、TRUE preg_match('/foo(?!bar)/', $str); // 肯定後読み fooの前がbarの場合、TRUE preg_match('/(?<=bar)foo/', $str); // 否定後読み fooの前がbar以外の場合、TRUE preg_match('/(?<!bar)foo/', $str); // 英小文字1文字の場合、TRUE preg_match('/^[a-z]\z/', $str); // 英小文字2文字の場合、TRUE preg_match('/^[a-z]{2}\z/', $str); // 英小文字2文字または3文字の場合、TRUE preg_match('/^[a-z]{2,3}\z/', $str); // 英小文字2文字以上4文字以下の場合、TRUE preg_match('/^[a-z]{2,4}\z/', $str); // 英小文字2文字以上の場合、TRUE preg_match('/^[a-z]{2,}\z/', $str); // 全角英小文字の場合、TRUE preg_match('/^[a-z]+\z/', $str); // 英大文字の場合、TRUE preg_match('/^[A-Z]+\z/', $str); // 全角英大文字の場合、TRUE preg_match('/^[A-Z]+\z/', $str); // 数字の場合、TRUE preg_match('/^[0-9]+\z/', $str); preg_match('/^\d+\z/', $str); // 数字以外の場合、TRUE preg_match('/[^0-9]/', $str); preg_match('/^\D+\z/', $str); // 全角数字の場合、TRUE preg_match('/^[0-9]+\z/', $str); // 英数字の場合、TRUE preg_match('/^[A-Za-z0-9]+\z/', $str); preg_match('/^[a-z0-9]+\z/i', $str); // 記号の場合、TRUE preg_match('/^[\x21-\x2e|\/|:-@|[-`|{-~]+\z/', $str); // 英数字記号の場合、TRUE preg_match('/^[\x21-\x7e]+\z/', $str); // 英数字アンダースコアの場合、TRUE preg_match('/^\w+\z/', $str); // 英数字混在 a1や2bなどの場合、TRUE preg_match('/^(?=.*[a-z])(?=.*[0-9])[a-z0-9]+\z/i', $str); // 整数の場合、0~はTRUE preg_match('/^(0|[1-9]\d*)\z/', $str); // 小数の場合、0.1 0.10 1.0 1.00はTRUE 0.0 0.00はFALSE preg_match('/^(0\.(?!0*\z)\d+|[1-9]\d*\.\d+)\z/', $str); // 小数第3位まで preg_match('/^(0\.(?!0*\z)\d{1,3}|[1-9]\d*\.\d{1,3})\z/', $str); // 整数または小数の場合、TRUE preg_match('/^(0(\.(?!0*\z)\d+)?|[1-9]\d*(\.\d+)?)\z/', $str); // マイナスを含む場合 -0はFALSE preg_match('/^(0|-?0\.(?!0*\z)\d+|-?[1-9]\d*(\.\d+)?)\z/', $str); // 16進数3文字または6文字 a1bやa1b2c3などの場合、TRUE preg_match('/^([0-9a-f]{3}){1,2}\z/i', $str); // 全角ひらがな(ぁ~んとー) // SJIS preg_match('/^(\x82[\x9f-\xf1]|\x81\x5b)+\z/', $str); // EUC preg_match('/^(\xa4[\xa1-\xf3]|\xa1\xbc)+\z/', $str); // UTF-8 preg_match('/^(\xe3(\x81[\x81-\xbf]|\x82[\x80-\x93|\xbc]))+\z/', $str); // 全角カタカナ(ァ~ヶとー) // SJIS preg_match('/^(\x83[\x40-\x96]|\x81\x5b)+\z/', $str); // EUC preg_match('/^(\xa5[\xa1-\xf6]|\xa1\xbc)+\z/', $str); // UTF-8 preg_match('/^(\xe3(\x82[\xa1-\xbf]|\x83[\x80-\xb6|\xbc]))+\z/', $str); // 空白文字の場合、TRUE preg_match('/^[\s]+\z/', $str); // スペースを含む(SPACE, NO-BREAK SPACE, EN SPACE, EM SPACE, THREE-PER-EM SPACE, FOUR-PER-EM SPACE, SIX-PER-EM SPACE, FIGURE SPACE, PUNCTUATION SPACE, THIN SPACE, HAIR SPACE, IDEOGRAPHIC SPACE, CHARACTER TABULATION) preg_match('/(\x20|\xc2\xa0|\xe2\x80[\x82-\x8a]|\xe3\x80\x80|\x09)/', $str); // ゼロ幅スペースを含む(ZERO WIDTH SPACE, ZERO WIDTH NO-BREAK SPACE) preg_match('/(\xe2\x80\x8b|\xef\xbb\xbf)/', $str); // 制御文字を含む preg_match('/[\x00-\x1f\x7f]/', $str); // 制御文字(改行コード除外) preg_match('/[\x00-\x09\x0B\x0C\x0E-\x1f\x7f]/', $str); // スラッシュが含まれている場合、TRUE バックスラッシュでエスケープ preg_match('/\//', $str);

文字コード表 記号ひらがな、カタカナを参照。

パターン修飾子

PHP

// i // fooまたはFOOが含まれていれば、TRUE 大小区別しない preg_match('/foo/i', $str); // m // 改行後または文始がfooで始まる、bar\nfooやfooなどの場合、TRUE preg_match('/^foo/m', $str); // 改行前または文末がfooで終わる、foo\nhogeやfooなどの場合、TRUE preg_match('/foo$/m', $str); // s // ドットメタ文字が改行を含む全ての文字にマッチ、foo\n、fooa、fooabなどの場合、TRUE preg_match('/^foo.+$/s', $str); // x // 空白文字を無視、fooの場合、TRUE preg_match('/^foo $/x', $str); // A // 文字列の最初を強制マッチ // fooが含まれていればマッチ preg_match('/foo/', '<foo><bar><baz>', $match); // 文始がfooで始まればマッチ preg_match('/foo/A', '<foo><bar><baz>', $match); // U // <foo><bar><baz>がマッチ preg_match('/(<.*>)/', '<foo><bar><baz>', $match); // <foo>がマッチ preg_match('/(<.*>)/U', '<foo><bar><baz>', $match);

最新の記事

プロフィール

流されるままにウェブ業界で仕事しています。主にLAPP環境でPHPを書いています。最近はjQueryで遊んでいます。
※動作確認について