• ベストアンサー

【PHP】指定した文字~文字を取得したい

こんにちは。PHPを勉強中の素人です。 PHPで、例えば、 "This is <strong>The test text.</strong>" という文字列があるとします。 その中の<strong>~</strong>を抜き出して、それだけを表示させたいのですが 正規表現が苦手でアイデアも浮かびません。 良い方法がありましたら教えてください。

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

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

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

肯定先読みと肯定後読みという考え方を使います <?PHP $str="aaa<strong>bbb</strong>\nccc<strong>ddd</strong>\neee<strong>fff\nggg</strong>hhh"; $pattern="/(?<=<strong>).*?(?=<\/strong>)/s"; if(preg_match_all($pattern,$str,$matches)){ print_r($matches); } ?>

lilillllililili
質問者

お礼

思うとおりのことが出来ました。 正規表現はややこしくて上手く出来ないので助かりました。 ありがとうございました。

関連するQ&A

  • 正規表現でマッチさせたい文字列の指定方法

    正規表現でマッチさせたい文字列の指定方法について こんにちは。正規表現について教えてください。 秀丸エディタでgrepする時に先頭行に 『ファイル名(行数): 』という文字列が 先頭行に入りますが、これを正規表現を使用して消したいと思っています。 具体的には以下のような表現ですが、どのように指定するのが正しいでしょうか。 いくらかテストしているのですが、なかなかうまくできず困っています。 消したい文字列 test.log-110411-01.bak.text(38): よろしくお願いします

  • PHP5 文字列、日付データの表示方法

    PHP初心者です。 ログデータにある文字列を置換して表示したいです。 例えば「2009/04/08」という文字列があって、 「4/8」という文字列のみで表現したい場合、 どうすればよいのでしょうか? 正規表現でどうにかなりますか?? ご回答いただけましたら幸いです。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • PHPでの文字列置換について

    こんにちは PHPにて丸カッコ内の文字列を取得しようとしています。 対象の文字列は、「坂(さか)」という文字列の全角丸カッコ「()」内になります。 正規表現でやればすぐに取得できるのかもしれませんが、正規表現の知識が無いため 力ずくでやってみようとしました。 そこで、「(」で文字列の位置を取得して…と考えて色々やったのですが、 この全角丸カッコ「(」が、mb_strposでも位置を検知できず、 全角丸カッコ「(」を半角にして対応してみようかとmb_ereg_replace('(','(','坂倉武史(さかくらたけし)');としようとしても、変換されず困っております。 ちなみに「坂(さか)」という文字列は、 ネット上のあるHTMLから、file_get_contentsでURLを指定してから 取得して、その文字コードがEUC-JPなので、 mb_convert_encoding($dataXML, "UTF-8", "EUC-JP"); で、UTF-8に変更しております。 文字コードの問題のかもしれませんが、答えがみつかりません。 1。正規表現で取得できるのであれば、正規表現の書き方をお教えいただけますでしょうか。 2。正規表現が難しいのであれば、力ずくでやるのでこの「(」全角丸カッコの始まりの検知方法をお教えいただけますでしょうか。 PHPの実行環境は、 PHP5.3 mbstring.language  japanese mbstring.internal_encoding  UTF-8 mbstring.encoding_translation  ON default_charset  UTF-8 UNIX 文字コード UTF-8 ソース文字コード UTF-8 です どうぞよろしくお願いいたします。

    • ベストアンサー
    • PHP
  • 誤字脱字はご了承ください^^

     参考書の内容の質問です。 p60  3.1.4 文字列  PHPにおいて文字列は、後に説明する配列と並んで非常に重要な役割を果たします。PHPでは、 多くのものが文字列で表現されます。たとえば、PHPには正規表現リテラスが存在しないため、正 規表現を用いた処理を行う場合、正規表現を表す文字列を指定します。また、文字列を操作する 関数も非常の多くあり、たいてい処理は自分で実装せずともPHPが標準で用意してくれています。  正規表現を用いた処理を行う場合、正規表現を合わす文字列を指定します。また、文字列を操作する関 数も非常の多くあり、たいてい処理は自分で実証せずともPHPが標準で用意してくれます。  PHPはすべて可変長文列であり、C言語のchar型のような、文字型は存在しません。  文字列は、シングルクオート「'」またはダブルクウオート「"」を用いて※初期化する ことができます。 シングルクオートを用いた場合、文字列中のドル文字($)文字から始まるPHPの変数や、\nや\tなど どのエスケープ文字の展開はされません。一方、ダブルコートの中の変数やエスケープ文字は展開 されます。  <?php $string1 = 'this is string' ; $string2 = "this is string" ; $string3 = 'hi, $string2 \n' ;    //「hi,$string2 \n」 $string4 = "hi,$string2 \n" ;    //「hi,this is string<改行>」    以上ですが、※の初期化することができます。とありますが、 ここでいう初期化とは、どんな事なのでしょうか!?  以上、宜しくお願いいたします。

    • ベストアンサー
    • PHP
  • PHP、正規表現の使い方

    PHPで特定の文字列から特定の文字までを削除したいのですが、 正規表現を使うということはわかりましたが、どのようにしていいかがいまいちわかりません。 http://www.sample.php?a=test&b=ex&c=sample という文字列があったとして、 &b=exを取り除きたい場合はどのようにしたらいいのでしょうか。 mb_ereg_matchを使用しようと思っていますが、 その他の方法があればそちらも教えてください。

    • ベストアンサー
    • PHP
  • php4 大文字小文字の区別なし置換

    お世話になります。 phpを猛学中ですが、なかなかわかりません。 特に正規表現は難解です。 大文字小文字を区別しないで文字列を置換したり、その位置を求めたいのです。 PHP5なら、文字列$htmlの中の</BODY></body></Body>などをを</div>に変換 $html = str_ireplace('</body>','</div>', $html); また、文字列の位置を求める $pos0 = stripos($html, "</body>"); と、いうことで簡単だったのですが、 いざ、サーバへアップしてみるとなんと、そのサーバは、PHP4でした。 それで、動作しなくなってしまいました。 同じことをPHP4で処理するにはどのようにしたらよいのでしょうか。 QNo.4013255などを参考に考えたのですが、どうもだめです。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHP 正規表現

    はじめまして^^ 現在、PHPでプログラムを作っています。 そして、文字列の置き換えをする機会があり、 正規表現をつかうことになりました!! 置き換えに使う関数は、mb_ereg_replaceです! ある条件にあった部分の文字列を置き換えしたいと思っています。 そして、いろいろとやっていきましたら、あるひとつの壁にぶつかりました。。 例えば、PHPでは、正規表現の部分を [^文字]とやると、『文』と『字』という文字列以外にマッチという意味になるらしいのですが、 『文字』という文字列以外にマッチ、というふうに、表現したい場合は、 どう表現すればよいのですか? [^(文字)]とか、その他いろいろ、 自分なりに、色々ためしたのですが、うんともすんともいいません、、 どなたか、わかる方教えて下さいm(_ _)m

    • ベストアンサー
    • PHP
  • PHP 正規表現 文字列抽出

    PHP 正規表現 文字列抽出のご質問です。 ある文字列の中から「○○%OFF」の○○の部分を抽出したいのですが。 分かる方いらっしゃったら、ご教授ください。

    • 締切済み
    • PHP
  • 文字列を取り出す方法

    こんにちわ これからPhpを勉強してるのですが、 表題のとおり、文字列から任意の部分を取り出す方法をご教授下さい。 <h1>あかさたな</h1> <p><strong>たちつてと</strong></p> <p>さしすせそ</p> 上記文字列から<strong>で囲まれている部分の文字列を取り出すには どのようにすればよいでしょうか?

    • ベストアンサー
    • PHP
  • Perlの正規表現で文字の抽出

    Perlを勉強しているのですが正規表現についてよくわからないので教えてください。 $text="【件名】本文" とあるときに、【】で囲まれた文字列(【】も含む)を抽出し、$textに戻したいのですがどうすればいいのでしょうか? ($textの中身を【件名】としたいのです) よろしくお願いします。

    • ベストアンサー
    • Perl

専門家に質問してみよう