我在PHP中有以下字符串:
$string = "<img src=\"url\" >HELLO WORLD<ol>I must replace the text after img and before ol.</ol>";
print htmlentities($string);
我想使用分隔符找到子字符串HELLO WORLD(或任何子字符串,这只是一个完全动态的文本示例):&#34;&lt; img ...&gt;&#34;和&#34;&lt; ol&gt;&#34;并添加&lt; h3&gt;分隔符。所以上面的字符串会导致:
<img src="url" ><h3>HELLO WORLD</h3><ol>I must replace the text after img and before ol.</ol>
我尝试过以下代码,当然没有成功:
$string = preg_replace("/\<img (.*?)\> (.*?)\<ol\>/", "<img (.*?)><h3> (.*?)</h3></ol>", $string);
我知道怎么做很容易的替换,但上述条件离我的理解还很远。
答案 0 :(得分:1)
我通过反复试验找到答案:
$string = "<img src=\"url\" >HELLO WORLD<ol>I must find the text after img and before ol.</ol>";
$string2 = preg_replace("/<img (.*?)>(.*?)<ol>/", "<img $1><h3>$2</h3><ol>", $string);
print htmlentities($string) . " <br />" . htmlentities($string2);
说明:我添加了分隔符,并使用$ 1和$ 2以正确的顺序匹配分隔符之间的结果。