• ベストアンサー

mb_eregを使っての文字列検索、抽出について

パターン="関数.+ます。" 上記パターンで、"関数"から"ます。"までを含む文字列を抽出する事は出来ました。が、 一番最初に出てくる"ます。"で検索をストップし、変数$matchに代入する事はできますか? (指定したキーワード"関数"以降の全ての"ます。"が変数に代入されてしまいます、最初に出てくる"ます。"まで抽出できれば充分なので。) キーワードやアドバイスがあればお教え下さい。 宜しくお願いします。 以下のプログラムで実行しました。 <?php //mb_eregについて $url="http://jp2.php.net/mb_ereg"; //アドレス指定 $result=file_get_contents($url);//取得 $text_contents=strip_tags($result);//タグを外す $sjis_text=mb_convert_encoding($text_contents,"SJIS","auto");//sjisに変換 echo("$sjis_text<br>");//本文出力 echo("----------------------------------------------<br>"); if(mb_ereg("関数.+ます。",$sjis_text,$match))//"関数"から"ます。"まで検索 echo("$match[0]<br>");//検索結果表示 ?>

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

こんなかんじでしょうか? <? mb_regex_encoding("SJIS"); $text="これは関数ざます。そうざます。"; if(mb_ereg("関数.+?ます。",$text,$match)) print "${match[0]}<br>"; ?>

narusuji
質問者

お礼

サンプルコードまで書いて頂きありがとうございます。 実行した所無事解決する事が出来ました。 ありがとうございます!

その他の回答 (1)

  • SAYKA
  • ベストアンサー率34% (944/2776)
回答No.1
narusuji
質問者

お礼

最短、最長一致と言う言葉を知りませんでした。 目からうろこのキーワードでした、ありがとうございます。 おかげ様ですぐに解決する事が出来ました。