​PHP|正規表現について

パターンの書き方

パターンの構成は、以下のようになる

"/パターン/パターン修飾子"

パターン(先頭と末尾)

^ 後に続く文字を先頭とする
$ 前にある文字を末尾とする

パターン(制御)

? 最小マッチを意味します。

パターン(繰り返し)

* 前の文字が0個以上繰り返す
+ 前の文字が1個以上繰り返す
? 前の文字が0個、または1個
*? 前の文字が0個以上(最小回数マッチです。)
+? 前の文字が1個以上(最小回数マッチです。)
?? 前の文字が0個、もしくは1個以上(最小回数マッチです。)
{x,y} 前の文字をx個~y個続ける
{x} 前の文字をx個続ける
{x,} 前の文字をx個以上続ける

パターン修飾子について

なし 文字列の1行目のみ確認する
s 改行文字を無視し、1行とみなして調べる
i 大文字と小文字の違いを無視
u 対象文字列をUTF-8として扱う
置換文字列をPHPコードとして実行

色々な正規表現のサンプル

郵便番号 /^[0-9]{3}-[0-9]{4}$/
電話番号 /^[0-9]{2,4}-[0-9]{2,4}-[0-9]{3,4}$/
Emailアドレス |^[0-9a-z_./?-]+@([0-9a-z-]+\.)+[0-9a-z-]+$|
全角空白のトリム /^ *(.*?) *$/u
半角+全角空白のトリム /^[\s ]*(.*?)[\s ]*$/u

 

正規表現を使えるPHPの標準関数

preg_filter 正規表現で検索と置換をする
preg_grep パターンにマッチする配列の要素を返す
preg_last_error 直近の PCRE 正規表現処理のエラーコードを返す
preg_match_all 繰り返しで正規表現検索をする
preg_match 正規表現のパターンマッチングをする
preg_quote 正規表現文字をクオートする
preg_replace_callback_array 正規表現検索を行い、コールバック関数を使用して置換をする
preg_replace_callback 正規表現検索を行い、コールバック関数を使用して置換をする
preg_replace 正規表現検索および置換をする
preg_split 正規表現で文字列を分割する

 

オーソドックスに正規表現でパターンにマッチしているかを確認するには、preg_match() を使う。

------------------------------
作成日:2018年03月18日
更新日:2018年03月21日
------------------------------

ページの先頭へ