検索

キーワード


【PHP】PHPでの正規表現チェックについて(preg_match)

  • 公開日:2020-09-18 11:16:47
  • 最終更新日:2021-02-05 18:03:09

正規表現

正規表現とは

ある文字列に対して「○○で始まって××で終わる」や「○○または××を含む」、「□の後に○△が続く」などの複雑な検索・置換を行うパターンをチェックすることを指します。

使用例としては、郵便番号や電話番号、メールアドレスの妥当性のチェックなどによく使われ、preg_match関数を使って正規表現チェックを行います。

preg_match("/検索パターンを表す文字列/", 比較対象の文字列)

ここでは、正規表現チェックの一例を紹介します。

郵便番号

郵便番号のチェックはハイフン(-)を含む場合と、許容する場合で正規表現のパターンが変わります。

ハイフンを含む場合
/^[0-9]{3}-[0-9]{4}$/

0~9の文字が3回繰り返された後にハイフン、再び0~9の文字の4回繰り返されたかをチェックする例です。

ハイフンを許容する場合
/^(([0-9]{3}-[0-9]{4})|([0-9]{7}))$/

ハイフンを含むパターンに加え、0~9の文字が7回繰り返されたかをチェックする例です。

電話番号

/^[0-9]{2,4}-[0-9]{2,4}-[0-9]{3,4}$/

0~9の文字の繰り返しが2~4回、2~4回、3~4回繰り返されたかをチェックする例です。

この例ではハイフンを含んだパターンを紹介しています。


メールアドレス

/^[a-zA-Z0-9_.+-]+[@][a-zA-Z0-9.-]+$/

メールアドレスは正規表現を使用して厳密にチェックすることは難しいため、ある程度の簡易的チェックに留めておきましょう。

この例は、半角英数字と「_.+-」から始まる文字列を1回以上、@の後に半角英数字とドットやハイフンを含む文字列を1回以上繰り返されているかをチェックする例です。


メールアドレスとしての形であれば許容するのであれば、以下のような正規表現でも良いでしょう。

/^[^@]+@[^@]+$/

@以外の文字から始まり@と@以外の一文字以上で終わる正規表現です。

まとめ

正規表現チェックの一例を紹介してみました。

今回紹介したのはあくまで一例であり、更に厳密に設定することもできます。

正規表現の記述の仕方には正解がなく、これが一番正しいというものがないので、ケースバイケースで正規表現のパターンを変えることもあるので気を付けましょう!


【著者】

當山

主にPHPでのフレームワーク開発やWebアプリの開発に携わってきました。 得意分野はHTML5とCSSによるフロントエンド開発。

よく読まれている記事