PHPの正規表現で文字数をチェックする方法を解説!

正規表現を用いることで、様々な文字列パターンを検査したり置換したりすることができます。PHPでも正規表現を用いて、いろんな機能を実装することのできる関数が提供されています。この記事ではPHPの正規表現で文字数をチェックする方法を解説しています。

コンテンツ [表示]

  1. 1PHPの正規表現で文字数をチェックしたい
  2. 1.1正規表現とは
  3. 1.2正規表現を使う場面
  4. 2PHPの正規表現で文字数をチェックする方法
  5. 2.1数字の長さをチェックする
  6. 2.2文字列の長さをチェックする
  7. 3まとめ

PHPの正規表現で文字数をチェックしたい

正規表現とは

正規表現とはいくつかの文字列を1つの形式の文字列で表現する方法です。

正規表現では特殊文字を使い、文字列のパターンを表現しています。

例えば、「先頭はaで末尾はbの文字列」や「数字のみで構成された7文字以上の文字列」といったパターンを表現できるのが、正規表現です。

正規表現を使う場面

正規表現を用いる場面は、クライアントがフォームなどで入力した文字列をサーバーへリクエストされた際に正しいパターンの文字列が入力されているかをチェックするような場面が最も多いでしょう。

WEBアプリケーションなどではクライアントから送信された文字列をDBに保存するといった場合もあります。DB側ではあらかじめ保存できる文字列の長さを制限していたりします。

そういった時にクライアントからDBで制限された文字数以上の文字列が送信されてしまった場合にはDBに保存することができずに最悪の場合アプリケーションが停止してしまうことなどが起こりえます。

そんな状況を防ぐためにも、正規表現を使って入力された文字列の長さなどのパターンをチェックする必要があります。

Photo byBoskampi

PHPの正規表現で文字数をチェックする方法

PHPでは正規表現を扱う関数の1つとしてpreg_match関数を提供しています。

preg_matchでは正規表現によるマッチングを行い、対象文字列が正規表現にマッチした場合は1を返して、マッチしなかった場合は0を返します。

あわせて読みたい
preg_match関数
正規表現を用いたパターンマッチを行うことができるpreg_match関数の概要を紹介しています。preg_matchを用いることで、フォームで入力された値のバリデーションをサーバサイド側で行うことができるようになります。

それではpreg_matchを使って、正規表現による文字数のチェックを行ってみましょう。

数字の長さをチェックする

変数$patternで正規表現文字列を表現しています。

[0-9]で0から9までの数字のいずれかを表し、{5}でその前の文字を5つ繰り返すということを表しています。結果として、[0-9]{5}では長さが5の数字を表現しています。

preg_matchの第一引数には先ほど用意した正規表現文字列$patternを渡して、第二引数にはその正規表現を用いて検査した対象の文字列を渡します。

対象文字列が5つの数字であれば1を返してOKという文字列を出力し、そうでなければ0を返してNGという文字列が出力されます。

文字列の長さをチェックする

[a-zA-Z]で英小文字と英大文字を表現しています。また、{3,8}という風にカンマで区切ることで文字数を固定値ではなく、範囲で表現することができます。

結果、[a-zA-Z]{3,8}で英小文字か英大文字のみで構成された3~8文字の文字列を表現することができます。

appleという文字列とstrawberryという文字列が上記の正規表現にマッチするかをpreg_match関数で判定しています。

appleは5文字なのでOKと出力されますが、strawberryは10文字なのでNGと出力されます。

まとめ

正規表現を使いこなせるようになることで、もっと複雑な文字列パターンを表現することができるようになります。また、PHPにはpreg_match以外にも正規表現を用いた関数が提供されていますので、そちらもチェックしてみてください。

Qumeru[クメル]ではプログラミング学習が出来るカリキュラムを7月31日までの期間限定で無料で提供しています。

無料登録することで、すぐにプログラミング学習を始められます。ぜひカリキュラムをお試し下さい!

関連記事