- ベストアンサー
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>");//検索結果表示 ?>
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんなかんじでしょうか? <? mb_regex_encoding("SJIS"); $text="これは関数ざます。そうざます。"; if(mb_ereg("関数.+?ます。",$text,$match)) print "${match[0]}<br>"; ?>
その他の回答 (1)
- SAYKA
- ベストアンサー率34% (944/2776)
それは 最短一致 というやつだね。 http://www.google.co.jp/search?q=%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE%20%E6%9C%80%E7%9F%AD%E4%B8%80%E8%87%B4%20php&hl=ja&lr=lang_ja
お礼
最短、最長一致と言う言葉を知りませんでした。 目からうろこのキーワードでした、ありがとうございます。 おかげ様ですぐに解決する事が出来ました。
お礼
サンプルコードまで書いて頂きありがとうございます。 実行した所無事解決する事が出来ました。 ありがとうございます!