正規表現を使った文字列検索とマッチ文字列の抽出 (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 = '一般的にシロクマは北極に住んでいる[1]と思われがちだが、'
            . 'シロクマはアラスカやグリーンランドにも住んでいる[2]';

    $ret = preg_match('/シロクマ/', $inputstr, $match);
    if ($ret == 0) {
      echo('マッチしませんでした。<br/>');
    } else {
      for ($i = 0; $i < count($match); $i++) {
        echo($match[$i] . '<br/>' . "\n");
      }
    }

    $ret = preg_match('/グ.*ランド/', $inputstr, $match);
    if ($ret == 0) {
      echo('マッチしませんでした。<br/>');
    } else {
      for ($i = 0; $i < count($match); $i++) {
        echo($match[$i] . '<br/>' . "\n");
      }
    }

    $ret = preg_match('/\[\d\]/', $inputstr, $match);
    if ($ret == 0) {
      echo('マッチしませんでした。<br/>');
    } else {
      for ($i = 0; $i < count($match); $i++) {
        echo($match[$i] . '<br/>' . "\n");
      }
    }

    echo('End.<br/>');
    ?>
  </body>
</html>

解説

入力文字列を準備します。
  $inputstr = '一般的にシロクマは北極に住んでいる[1]と思われがちだが、'
    . 'シロクマはアラスカやグリーンランドにも住んでいる[2]';

preg_match()関数を呼び出し、正規表現による文字列検索を実行します。パターンにマッチした場合は戻り値に1が、パターンにマッチしなければ0が戻ります。
  $ret = preg_match('/シロクマ/', $inputstr, $match);

パターンにマッチした場合は、マッチした部分文字列を表示します。
  if ($ret == 0) {
    echo('マッチしませんでした。<br/>');
  } else {
    echo($ret.'<br/>');
    for ($i = 0; $i < count($match); $i++) {
      echo($match[$i] . '<br/>' . "\n");
    }
  }

実行結果

pre class="brush 1 シロクマ 1 グリーンランド 1 [1] End.
著者
iPentecのプログラマー、最近はAIの積極的な活用にも取り組み中。
とっても恥ずかしがり。
最終更新日: 2024-01-06
作成日: 2011-02-01
iPentec all rights reserverd.