私は新しい文字列として削除部分文字列を保存することができますどのようにpreg_replace
preg_replaceで一致する部分文字列を取得する方法は?
$html = preg_replace('#<p>(.*?)</p>#i', '', $html, 1);
で文字列内のhtmlタグの最初の発生を削除します。あなたが使用できる部分文字列を取得するために
$deleted = '<p>...</p>';
私は新しい文字列として削除部分文字列を保存することができますどのようにpreg_replace
preg_replaceで一致する部分文字列を取得する方法は?
$html = preg_replace('#<p>(.*?)</p>#i', '', $html, 1);
で文字列内のhtmlタグの最初の発生を削除します。あなたが使用できる部分文字列を取得するために
$deleted = '<p>...</p>';
preg_match('#<p>(.*?)</p>#i', $html, $matches);
ちょうど$は、それはあなたが必要なものを含んで変数と一致して確認してください。
一致が指定されている場合は、検索結果が入力されます。 $ matches [0]にはフルパターンに一致するテキストが含まれ、 $と一致すると1には最初に取り込まれた の小括弧付きサブパターンと一致するテキストがあります。
タグを削除する場合は、その後にpreg_replace
を使用してください。
しかし、あなたは唯一の<p>
タグを削除し、ちょうどpreg_replace
このような部分文字列を保持する場合:
$html = "left <p>substring</p> right";
$html = preg_replace('#</?p>#i', '', $html);
echo $html;
出力:
left substring right
私はこの正確な答えを投稿しましたが、いくつかの下降音がありました。このサイトは時々騒がしくなることがあります! – madscientist159
確かに、時には人々は奇妙です:/ – yoeunes
は、使用してみてください:
どう$result = preg_match('#<p>(.*?)</p>#i', $html);
あなたは何の質問に答えていますか? 'preg_match'はブール値を返します。何をやっていますか? – Toto
その一致をユーザdに渡すpreg_replace_callback
の使用についていいえ。
$str = preg_replace_callback($re, function ($m) use (&$p) { $p = $m[0]; }, $str, 1);
$m
指数0
は、(参照によって渡された)一致を記憶するための任意の変数名の完全なパターンマッチuse
(&$p)
あるマッチアレイの任意の変数の名前。
のDOMDocument :: removeChildの –
@Allカシミールさんのコメントがベストプラクティスです。 html文字列を処理するためにhtmlパーサーを使用するのが最も信頼できます。最良の結果を得るには、彼のアドバイスを活用する方法を研究し開発する時間を取るべきです。 – mickmackusa