• ベストアンサー

正規表現で <span>~</span>で囲まれた文字を別の文字に置換したい

こんにちは。正規表現についてお教えいただけないでしょうか? HTMLページを解析し、<span>と</span>で囲まれた範囲を、別の文字列に置換したいのです。 そこで以下のようにしてみました。 print mb_ereg_replace("<span>.+?</span>","置換文字",$source); しかし<span>ああ </span>と、スペースがないと反応しないようなのです。 正規表現の間違いでしょうか? お教えいただけると助かります。よろしくお願いいたします。

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

  • ベストアンサー
  • mpx
  • ベストアンサー率71% (149/209)
回答No.2

>> 正規表現の間違いでしょうか? 正規表現の間違いではなく、文字コードに関する設定の不備と思います。 phpの日本語がらみの設定を見直すことを提案します

その他の回答 (1)

  • altrn
  • ベストアンサー率62% (10/16)
回答No.1

正規表現は間違っていないように思えます。 私はeregではなくpregを使っています。 そこで一応下で試したところ、成功しましたので、参考になれば幸いです。 preg_replace('#<span>.+?</span>#u',"置換文字列",$source); テストしたコードは以下です。 $source='あいうえお<span>おきかえ</span>abcde<span>replace</span>12345<span>おきかえ </span>'; print '置換前<br />'; print htmlspecialchars($source); print '<br />'; print '置換後<br />'; print preg_replace('#<span>.+?</span>#u',"置換文字列",$source); exit;

関連するQ&A