- ベストアンサー
文字列を取り出す方法
こんにちわ これからPhpを勉強してるのですが、 表題のとおり、文字列から任意の部分を取り出す方法をご教授下さい。 <h1>あかさたな</h1> <p><strong>たちつてと</strong></p> <p>さしすせそ</p> 上記文字列から<strong>で囲まれている部分の文字列を取り出すには どのようにすればよいでしょうか?
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
No.2です。 <strong>の含まれた1行だけで試していました。質問文の通りだと確かに抽出できませんでした。失礼いたしました。 下のように修正してみましたが、これでいけないでしょうか? $pattern = "/(.*<strong>)(.*)(<\/strong>.*)/s"; $replacement = "$2"; $strong_str = preg_replace($pattern, $replacement, $string);
その他の回答 (4)
- takana_
- ベストアンサー率44% (21/47)
No.4です preg_match_all("/<strong>(.*?)<\/strong>/", $string, $out); 抽出したい文字列は $out[1][n] n=1~マッチした数まで ではないでしょうか? ただし、マルチバイト文字列なので、 mb_ereg("/<strong>(.*?)<\/strong>/", $string, $out); かな? 自信なし ANo.4の補足 Hmjre.dllを使った場合です。
- takana_
- ベストアンサー率44% (21/47)
直接的には関係ないと思いますが、このサイトは多くの方が、 参照されていると思いますので、有益と思った内容を紹介します。 PHPで正規表現を試行錯誤するのは、結構面倒な作業ですが、 秀丸エディタv6.03の置換で、正規表現を使えば、結構正規表現のテストが楽に出来ます。 preg_replace($pattern, $replacement, $string); 秀丸エディタの置換コマンドの 検索文字列 = $pattern 置換文字列 = $replacement 編集中の文書 = $string に該当すると思います。 preg_match_all($pattern, $string, $out); 秀丸エディタの検索コマンドの 検索文字列 = $pattern 編集中の文書 = $string $out:検索文字列を強調した時に強調される文字列の配列 に該当すると思います。 正規表現についてのヘルプも、結構わかりやすいので、参考になります。
- ham_kamo
- ベストアンサー率55% (659/1197)
$stringに文字列が入っていて、$strong_strに取り出すとして、 $pattern = "/(^.*<strong>)(.*)(<\/strong>.*$)/"; $replacement = "$2"; $strong_str = preg_replace($pattern, $replacement, $string); でいかがでしょうか。
- edomin
- ベストアンサー率32% (327/1003)
$aに文字列が入っているものとします。 $pos1=strpos($a,"<strong>")+8; $pos2=strrpos($a,"</strong>"); $ans=substr($a,$pos1,$pos2-$pos1); で、でないでしょうか?(未検証)
お礼
回答ありがとう御座います。 動作確認してみましたが、抽出はされませんでした(汗