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"
//}
キャプチャーを使うことによって、取り出したい部分を取り出すことが出来ます。
コメント