正規表現を使った文字列検索 (mb_ereg()関数による正規表現パターンマッチング) - PHP

mb_ereg()関数を使って正規表現によるパターンマッチング検索をします。

コード例

ソースコードの文字コードはUTF-8で保存します。
<!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 = '一般的にシロクマは北極に住んでいると思われがちだが、'
            . 'シロクマはアラスカやグリーンランドにも住んでいる';
    
    mb_regex_encoding("UTF-8");

    $ret = mb_ereg('シロクマ', $inputstr);
    if ($ret == 1) {
      echo('パターンが見つかりました。<br/>');
    } else {
      echo('パターンは見つかりませんでした。<br/>');
    }

    $ret = mb_ereg('ペンギン', $inputstr);
    if ($ret == 1) {
      echo('パターンが見つかりました。<br/>');
    } else {
      echo('パターンは見つかりませんでした。<br/>');
    }

    $ret = mb_ereg("グ.*ランド", $inputstr);
    if ($ret == 1) {
      echo('パターンが見つかりました。<br/>');
    } else {
      echo('パターンは見つかりませんでした。<br/>');
    }
    ?>
  </body>
</html>

解説

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

正規表現の文字エンコーディングを指定します。ここはソースコードの文字コードと同じUTF-8を指定します。
  mb_regex_encoding("UTF-8");

mb_ereg()関数を呼び出し正規表現によるパターンマッチを実行します。mb_ereg()関数の引数が2つのときは、パターンに一致した場合はmb_ereg()関数は1を返します。戻り値を確認しパターンにマッチした場合はその旨のメッセージを表示します。
 $ret = mb_ereg('シロクマ', $inputstr);
 if ($ret == 1) {
   echo('パターンが見つかりました。<br/>');
 } else {
   echo('パターンは見つかりませんでした。<br/>');
 }

以下同様で3つのパターン("シロクマ","ペンギン","グ.*ランド")についてマッチするかを判定します。

実行結果

パターンが見つかりました。
パターンは見つかりませんでした。
パターンが見つかりました。

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