PHP

【PHPの基礎】正規表現の使い方をマスターしよう!

今回解決できる内容!

✔️正規表現とは

✔️正規表現の使い方

✔️正規表現の応用

正規表現は実際の開発でも大変よく使われます。簡単な例を挙げると、電話番号を確認したり、メールアドレスが正しいかどうかの判定をしたりできます。

今回で是非マスターしましょう!

仕事と両立してスキルを身につけたい方はこちら!

✔︎【DMM WEBCAMP】 完全未経験からエンジニアを目指したい方へ!

※無料カウンセリングで、今悩んでいることを気軽にプロに相談できます

【基礎編】正規表現とは

正規表現とは文字列の集合を1つの文字列で表現する方法です。もっと簡単に言うと、

特定の条件に当てはまる文字列を検索する際に使われる、検索条件の表現方法です。

書き方は下記の通りです。

/正規表現のパターン/

正規表現を利用する場合は、スラッシュ(/)で囲むことが必須になります。

正規表現で文字を表す基本構文は下記の通りです。もちろん下記以外の構文もありますので、用途に合わせて確認してみましょう!

構文説明
.任意の1文字を表現/t..t/ ⇨「test」などが該当
[]文字クラスを表現。
[a-z]で「aからz」までを表現
/ca[a-z]/ ⇨「cat」や「cap」などが該当
\sタブ、スペース、改行などの
空白文字を表現
/A\sB/ ⇨「A B」が該当
\d数字を表現。[0-9]と同様/G\d/ ⇨ 「G7」などが該当
\w大文字小文字のアルファベット、数字、アンダーバーを表現/\a/ ⇨「a」や「A」や「_」などが該当

サラプロ

正規表現は理解したけど、実際に開発で使うやり方が知りたいですよね!

実際の開発で正規表現が使われる関数の1つにpreg_match関数があります。

次の項で確認してみましょう!

【実践編】preg_match関数を利用する

preg_match関数は対象の文字列から正規表現パターンの文字列があるかないかを検索する関数です。戻り値はマッチした文字列がある場合は「1」、ない場合は「0」を返します。

書き方は下記の通りです。

preg_match(/正規表現によるパターン/ , 検索対象の文字列 [,マッチした文字列の配列])

1つ目の引数には、正規表現による文字列パターンを記述します。正規表現はスラッシュ(/)で囲むことが必須です。2つ目の引数は検索対象の文字列を記述します。

preg_matchの返り値として検索結果を返してくれます。

返り値に関しては下記の記事を参考にして下さい。

四捨五入
【PHPの基礎】返り値をマスターしよう! 今回解決できる内容! ✔️返り値とは? ✔️返り値の使い方は? ...

郵便番号の確認を例に、実際のコードを見てみましょう!

サンプルコード

<?php

$postalcode1='123-4567';
$postalcode2='4567-8910';

$result1=preg_match('/\A([0-9]{3})-([0-9]{4})\z/',$postalcode1);
$result2=preg_match('/\A([0-9]{3})-([0-9]{4})\z/',$postalcode2);

if($result1){
    echo 'マッチしています';
}else{
    echo 'マッチしていません';
}

echo'<br>';

if($result2){
    echo 'マッチしています';
}else{
    echo 'マッチしていません';
}

?>

結果は下記の通りです。

コード解説

正規表現により、指定の数字が郵便番号の表記方法を一致するか確認するコードです。

正規表現の「\A([0-9]{3})-([0-9]{4})\z」についてです。

冒頭の「\A」と末尾の「\z」はそれぞれ文字列の始まりと終わりを示しています。これが無いと、郵便番号の前後に文字列が配置されている場合でもマッチしてしまいます。

次に[0-9]は0~9の中のどれか1文字を、{3}は繰り返しの回数を示します。[0-9]{3}により、0~9の中のどれか1文字を3回繰り返すことになります。

[0-9]{4}は先程と同様に0~9の中のどれか1文字を4回繰り返すことになります。

これらの表記にマッチしているのは「$postalcode1」である為、if文の条件分岐の結果は上記の通りになります。

if文の基本に関しては、下記の記事を参考にして下さい

プログラミング 独学
【PHPの基礎】if文による条件分岐の使い方をマスターしよう! 今回解決できる内容! ✔️if文ってなに? ✔️if文はどのような書き方...

独学でツラくなった方へ

まとめ

今回解説した内容!

✅正規表現の使い方

✅preg_match関数について

今回は以上になります。

正規表現は実際開発でも電話番号を確認したり、メールアドレスが正しいかどうかの判定に使用されます。

是非今回でマスターしましょう!