名前付きサブパターンを用いた文字列抽出処理 (preg_match() を利用した部分文字列のグループ化抽出) - PHP

preg_match()関数を用いて名前付きサブパターンのマッチ処理をします。(名前付きグループ化構成体を利用して部分文字列をキャプチャします。)

コード例

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title></title>
  </head>
  <body>
    <?php
    $inputstr = 'Penguin=110';
    //$inputstr = 'kuma = 6000';

    preg_match('/(?P<name>.*)\s*=\s*(?P<digit>.*)$/', $inputstr, $matches);
    
    echo($matches['name'].'<br/>');
    echo($matches['digit'].'<br/>');
    ?>
  </body>
</html>

解説

検索対象文字列を準備します。
  $inputstr = 'Penguin=110';

preg_match()関数を呼び出してパターンマッチをします。第一引数がマッチのためのパターン第二引数が検索対象の文字列、第三引数が結果格納変数となります。
  preg_match('/(?P<name>.*)\s*=\s*(?P&<digit>.*)$/', $inputstr, $matches);

結果変数の連想配列にパターンマッチした部分が格納されます。連想配列名にサブパターン名を指定するとその名前のパターンでマッチした文字列にアクセスできます。
  echo($matches['name'].'<br/>');
  echo($matches['digit'].'<br/>');

実行結果

Penguin
110
著者
iPentecのプログラマー、最近はAIの積極的な活用にも取り組み中。
とっても恥ずかしがり。
最終更新日: 2024-01-06
作成日: 2011-02-02
iPentec all rights reserverd.