[PHP]正規表現のキャプチャ機能

PHPの正規表現他の言語に比べると特殊なのですが、キャプチャという機能があります。

ここでは、キャプチャという機能についてまとめたいと思います。

スポンサーリンク

正規表現とは

その前に正規表現について触れておきます。

正規表現とは検索したい文字列をパターンによって表現するための方法です。

例えば、電話番号を表現したいとします。この時、考えうるすべての電話番号全てを打ち込んむ

は面倒すぎます。そこで、電話番号を次のようにパターンとして表現するのです。

[0-9]{3}-[0-9]{4}-[0-9]{4}

これを人間の言葉で表現すると、「0~9までの数字が11個続いていて3個目と4個目、7個目と8個

目の間に-が入る文字列」となります。

正規表現を用いることによって、複雑な文字列の表現を可能にすることが出来ます。

キャプチャとは

では、キャプチャについて解説します。

キャプチャとは、簡単に言えば文字列の指定したところだけを切り取る(配列に格納する)機能です。

例えば、まず郵便番号として正しければ最初の3文字だけを他の処理に使いたいとします。

その時に、正しいかを判断して一緒に最初の3文字を配列に格納するような機能です。

<?php

$subject = '123-4567';

//0~9の数字が3つ続き、ーのあとに数字が4つ続く
$pattern = '/([0-9]{3})-[0-9]{4}/u';

//文字列が郵便番号として正しいか
//$captureにキャプチャした値を格納
preg_match($pattern, $subject, $capture);

//$captureの中身を確認
var_dump($capture);

//array(2) {
//  [0]=>
//  string(8) "123-4567"
//  [1]=>
//  string(3) "123"
//}

キャプチャーを使うことによって、取り出したい部分を取り出すことが出来ます。

参考にした書籍

パーフェクトPHP 独習PHP 第3版

コメント

タイトルとURLをコピーしました