PHP関数 preg_match() での正規表現を使った文字列検索とマッチ文字列の抽出

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.

AuthorPortraitAlt
著者
iPentecのプログラマー、最近はAIの積極的な活用にも取り組み中。
とっても恥ずかしがり。
作成日: 2011-02-01
Copyright © 1995–2025 iPentec all rights reserverd.