0

私はいくつかの文字列を持っています:

$string1 = '<p><strong>Extract me</strong></p><p>Leave me</p>';
$string2 = '<strong>Extract me</strong>Leave me';
$string3 = '<span style="font-weight: bold">Extract me</span><br /><span>Leave me</span>';

$string3を確認してみましょう:

文字列の最初のタグは、最初のタグと最初のタグの間<span> のテキストを抽出します。<span></span>

抽出とは、 $stringXから削除し、$extractedX に保存することを意味ます。

どうすればいいですか?

4

4 に答える 4

2
[^>]*?(?=<\/.*>)

あなたがすべきことはアサーションを使うことです。 [^>]*?ではない文字を検索します>。テキストとして使用する必要が>ある場合は、としてエスケープする必要があるため、これで問題ありません&gt;。次に、で示されている最初の終了タグを検索します<\/.*>。その(?=)周りは、正規表現エンジンにそれを試合に含めないように指示します。

http://regexr.com?30pkm

于 2012-04-27T07:02:36.187 に答える
1

PHP のpreg_matchと正規表現を使用できます。

このオンライン エディターは正規表現に役立ちます。

http://regexr.com?30pkp :

開始するには、次のようなものが必要です。

<strong>(.*)</strong>|<span.+font-weight:\ ?bold.+>(.*)</span>

より高度な解析を行う必要がある場合は、DOMDocument LoadHtmlを使用して、PHP で DOM を解析することを検討できます。

于 2012-04-27T07:07:14.627 に答える
1

最初に検索してから、ここに質問を投稿する必要があります。
任意の方法は、ここに関連する質問があります 。関連する質問を取得するには、ここをクリックしてください

preg replaceでそれを行うことができます

于 2012-04-27T07:00:59.010 に答える
0

最初に出現するだけの場合は、preg_matchを使用してstrip_tagsを使用できます。

于 2012-04-27T07:02:27.290 に答える