PHPのpreg_matchを使用した後方参照の方法

後方参照とは

後方参照とは、正規表現でマッチした文字列の内、指定の文字列を取得すること。
例えば、「hogehoge会員登録[2000円コース]」のような、文字列から「2000」の部分のみを 取得したい時に使用する。

サクッとスクリプトを書いてファイル操作をしたい時に便利です。
(※プロダクトコードの場合は、基本的には操作したいファイルのパーサがあるかどうか検討したほうが良いです。)

test.csv

1,hogehoge会員登録[2000円コース]
2,fridles会員登録[200円コース]

test.php

<?php

$handle = fopen("test.csv", "r");

while ($line = fgets($handle)) {
    //改行除去
    $line = preg_replace(array('/\r\n/','/\r/','/\n/'), '', $line);

    $data = explode(',', $line);

    // ☆後方参照☆
    preg_match('/\[([0-9]+).*\]/', $data[1], $val);

    var_dump($val);
}

fclose($handle);

出力 $val[0]には、マッチした文字列が入り、$val[1]には()で囲った文字列が入ります。

array(2) {
  [0]=>
  string(18) "[2000円コース]"
  [1]=>
  string(4) "2000"
}
array(2) {
  [0]=>
  string(17) "[200円コース]"
  [1]=>
  string(3) "200"
}


おすすめ記事
© 2016-2017 Fridles All Rights Reserved.