我有输入文本,可以是带标签的长HTML文本等等
<p>Lorem ipsum dolor sit amet, <strong>consectetur</strong> adipiscing elit.<p>
<p>%image1%</p>
<h2>Lorem ipsum</h2>
<p>Cum sociis natoque penatibus et magnis dis parturient montes.</p>
<p>%image2%</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. </p>
<p>%image3%</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. </p>
...
找到%%
字符之间所有出现的文本并用<img src="image1.jpg">
替换的最简单方法是什么?
尝试使用preg_replace ('/%(.+?)%/', '<img src="image1.jpg">', $string);
i可能有点偏离正则表达式模式,因为你需要转义%,如果?是贪婪的象征。
preg_replace('|%(.+)%|', '<img src="$1">', $text );
工作示例:http://codepad.org/20Oz3Vok
试试这个:
preg_replace('|%('w+)%|', '<img src="$1">', $string);
它只允许使用字母数字字符和下划线(以防止@AlexanderVarwijk在评论中指出的问题)。