• ベストアンサー

タグの中身だけを取り出す正規

下記のような配列から、タグの中身だけを取り出す正規表現を教えてください。 $array = array(   '<span>山田 太郎</span>',   '<span><a href="http://www.example.com">ホームページ</a></span>', ); よろしくお願いします。

  • PHP
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
noname#138894
noname#138894
回答No.1

正規表現ではないですが、strip_tags()じゃダメでしょうか? foreach($array as $key => $val){ $array_strip[] = strip_tags($val); } var_dump($array_strip);

関連するQ&A

  • [php][正規表現]タグ以外を削除したい

    いつもお世話になっております。 PHP環境にて、ある文字列において、preg_replaceなどを使い正規表現を用いてタグ以外を削除したい場合、どのように記述すれば宜しいのでしょうか。 例えば、 ――――――――――――――――― これは画像です。<img src="http://example.com/img/example.jpg"> これはテキストリンクです。<a href="http://example.com">exampleへのリンク</a> これは画像リンクです。<a href="http://example.com"><img src="http://example.com/img/example.jpg"></a> これはYoutubeの埋め込み動画です。<iframe width="420" height="315" src="http://www.youtube.com/embed/EXAMPLE" frameborder="0" allowfullscreen></iframe> ――――――――――――――――― このような記述があった場合、imgタグ、aタグ、Youtube以外のすべての通常テキストを削除したいのです。 ↓タグ以外のテキスト削除後↓ ――――――――――――――――― <img src="http://example.com/img/example.jpg"> <a href="http://example.com">exampleへのリンク</a> <a href="http://example.com"><img src="http://example.com/img/example.jpg"></a> <iframe width="420" height="315" src="http://www.youtube.com/embed/EXAMPLE" frameborder="0" allowfullscreen></iframe> ――――――――――――――――― 最初<このカッコ>に囲まれているもの以外を削除しようと思ったのですが、そうするとaタグの間のテキスト(「exampleへのリンク」の部分)も一緒に削除されてしまいました。 こちらを実現するにはどのように行えば良いか、アドバイスいただけますと嬉しいです。 宜しくお願い致します。

    • ベストアンサー
    • PHP
  • 正規表現の否定先読みについて

    <a href="http://example.com/aaaa/hogehoge1.jpg" target="_blank"><img src="http://example.com/aaaa/hogehoge1.jpg" width="100" alt="huge1"></a><br />hogehoge<br /><a href="http://example.com/bbbb/hogehoge2.jpg" target="_blank"> <img src="http://example.com/bbbb/hogehoge2.jpg" alt="huge2"></a> こういうHTMLがあるとします。改行はなく1行です。 このHTMLから正規表現で 『width="100"がついていない<img>タグ』 のsrc=""までを抜き出して置換したいのです。 期待する結果は <img src="http://example.com/hage/hogehoge2.jpg" です。 そこで /<img src="http:\/\/.*?.jpg"\s(?!width)/ というパターンを試しましたが、.*?の最短一致が思った通りにいかず <img src="http://example.com/aaaa/hogehoge1.jpg" width="100" alt="huge1"></a><br />hogehoge<br /><a href="http://example.com/bbbb/hogehoge2.jpg" と、1つ目の<img>が入ってしまい、2つ目の<a>タグまで抜き出されてしまいます。 これをうまくwidth="\d+"と入っていない<img>タグのみに適用させる方法はないでしょうか? どなたかよろしくおねがいいたします。

    • ベストアンサー
    • PHP
  • 正規表現でのマッチング

    連想配列%hushがあります。 %hushの中のキーが「a何とか」、つまり a0、a1、a2、a3、・・・ の値だけを、配列@arrayに格納します。 つまり  $array[0]=$hush{'a0'}  $array[1]=$hush{'a1'}  $array[2]=$hush{'a2'}  $array[3]=$hush{'a3'} ・・・ といった感じにしたいのですが、 「a何とか」は正規表現を用いて  a.* と表現できます。 ってここまでは手元の本で分かったのですが、マッチングのif文をどう書けばいいんだよ!  if($key==a.*) と書いてもうまくマッチしてくれないんで、a.*を""で括ってみたり()で括ってみたりするものの相手にされず・・・ 手元の本は「こういう場合正規表現ではこう書けば良くて、これをマッチングさせれば良い」みたいなことを書いていますが、マッチングのさせ方は書いていません。 プログラムの文法書を読むと、条件分岐の仕方は書いていますが、==演算子の右側が正規表現だった場合の使い方は書いていません。 あるいは、正規表現の場合のマッチングはif文などを用いないのでしょうか? だったら正規表現の本にマッチングの文法を書いていますよね!? なんだかんだでマッチングがうまくいかないのです。 この場合、どう記述すればいいのでしょうか? お手数をお掛けします。

  • 正規表現を使って?

    置換の正規表現を使ってこのURLを (例) <A href="http://123.com/456/789/"><IMG src="http://123/456/789.jpg" border="0"></A> <A href="http://123.com/456/789/">リンク先</A> このようにしたいです。 <A href="http://tesuto=http%3A%2F%2F123.com%2F456%2F789%2F"><IMG src="http://123/456/789.jpg" border="0"></A> <A href="http://tesuto=http%3A%2F%2F123.com%2F456%2F789%2F">リンク先</A> :は%3aに /は%2fに 最後にリンク先のURLにhttp://tesuto=を追加したいです。 (<IMG src="からのURLはそのままにしたいです。) ちなみにhtml内には様々なタグが入っていてリンク先も様々なURLが書かれているとします。 (http://123.com/456/789/やhttp://123.com/456/789/abc/dehg/など) 正規表現についてはまったく分からず悩んでいます。 どなたかよろしくお願いします。

  • PHPで正規表現を使った対象データを全て取り出した

    PHPで正規表現を使った対象データを全て取り出したいのですが、 echo ($matches); にしても「Array」しかでないし、、 var_dump($matches); で確認しても意図するものが取れておりません。。 正規表現で取りだしたい箇所は hrefの「100065」と「100066」です。 これはテスト用に作っているので2個ですが、本来は 30個程度対象箇所があります。 何か正規表現の記述が間違っていると思いますが、ご指摘願います。。 ・プログラム preg_match_all( "(/abcNo=(.*?)&ckFlg/)", $_getHTML, $matches); var_dump($matches); ・var_dumpしたブラウザの表示内容 array(2) { [0]=> array(0) { } [1]=> array(0) { } } 補足: $_getHTML は既にダミーで用意したHTMLを読み込んだものです。 $_getHTML で読み込んでいるファイルの中身です。 <html> <body> <a href="abcNo=100065&ckFlg=1"></a> <a href="abcNo=100066&ckFlg=1"></a> </body> </html>

    • ベストアンサー
    • PHP
  • 正規表現でタグの一部を削除したい

    Dreamweaverの検索および置換で正規表現を使用して、サイト内で使用されている<a>タグの中の「title=""」を削除したいです。どうぞよろしくお願いします。 例としては下記のような感じです。 【修正前】 <a title="ここは文字列が入っています" href="index.html" class="link">リンク文字</a> 【修正後】 <a href="index.html" class="link">リンク文字</a> 「title=""」の「””」に入っている文字列は同じ文字もありますが、基本的にすべて違います。 また、例では<a>タグの中に「href」「class」が入っていますが、リンク先が違ったり、class名が違ったり、「id」が入っていることもあります。

    • ベストアンサー
    • CSS
  • 正規表現でタグの中身を抜き取り変数に入れたい

    Flash Pro CS5 AS3.0 で記述しています。 しかし今回は正規表現に関しての質問ですので、AS3に限らず教えていただけるとありがたいです。 例として次のような2つの文章があります。 <font color="#cc0033">Laid off</font> a lot of workers. They <font color="#cc0033">laid</font> us <font color="#cc0033">off</font> for a month. ここから<font>タグで囲まれた中身の部分だけ抜き出し,変数に入れたいと考えています。 つまり, 1つ目の文章の場合,”Laid off”の部分 2つ目の文章の場合,”laid”と”off”の部分 となります。 2つ目の文章に関しては,できればひとつの変数に”laid,off”というように文字列が入ると嬉しいです。 (変数1に”laid”,変数2に”off” または 配列に順番に格納 よりも) .replace(/">.*?<\/font>/g, "hoge"); のように書き換える方法はわかったのですが,囲まれた中身を抜き出す方法がわかりませんでした。 よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • タグの中の改行文字を正規表現で削除したい

    たとえば、 <a href="~" target="_blank"> というタグの中の改行文字(\n)を削除する正規表現を教えてください。 ただし、preg_replace_callbackは使わないでください。

    • 締切済み
    • PHP
  • 正規表現で@を使う場合は\@とするべきか@とするべきか悩んでいます。

    正規表現で@を使う場合は\@とするべきか@とするべきか悩んでいます。 両方とも構文エラーが起きないのでその時点で?ですが .は\.としないと正規表現ではドット文字を認識しないのはわかりますが、正規表現の@はどうすればよいのでしょうか? Perl自体@も配列なので\@つけた方が・・・ よろしくお願いいたします。 $x = "test@example.com"; if ( $x =~ /[^a-zA-Z0-9\.\-\_@]/) if ( $x =~ /[^a-zA-Z0-9\.\-\_\@]/)

    • ベストアンサー
    • Perl
  • 正規表現を使って置換したい?

    文章の頭と終わりにある文字を入れたいのですが、正規表現で出来るでしょうか? 例えば・・・ ================================== 今日はいい天気ですね。 明日は雨が降るらしいですよ。 では、またお会いしましょう。 ================================== このような文章があるとします。 それを正規表現を使って以下のようにしたいです。 ================================== いつも元気な山田太郎です。 今日はいい天気ですね。 明日は雨が降るらしいですよ。 では、またお会いしましょう。 山田太郎でした。 ================================== このように文章の初めと終わりにある文章を入れたいのですが、やり方が分かりません。 どなたか教えていただけないでしょうか? よろしくお願いします。

専門家に質問してみよう