如果<p>[gallery ids=""]</p>
只存在一个,那么如何替换 $string = "/\<p\>\[gallery ids=\"\"\]\<\/p\>/";
$content = "asdfsdfdsafasdfaasfddsaf <p>[gallery ids=""]</p><p>[gallery ids=""]</p><p>[gallery ids=""]</p>";
if (preg_match_all($string, $content, $matches)) {
}
的所有事件?
$content
asdfsdfdsafasdfaasfddsaf <p>[gallery ids=""]</p>
应为{{1}}
答案 0 :(得分:2)
使用preg_replace
函数的简单解决方案:
$content = 'asdfsdfdsafasdfaasfddsaf <p>[gallery ids=""]</p><p>[gallery ids=""]</p><p>[gallery ids=""]</p>';
$content = preg_replace("/(<p>\[gallery ids=\"\"\]<\/p>){2,}/", "$1", $content);
print_r($content);
答案 1 :(得分:1)
你正在逃避许多事情的方式,你需要用量词找到问题,在这种情况下{1,}
:在1和无限次之间。
如果您的内容中有换行符,请添加g
全局修饰符。
$content = preg_replace('/(<p>\[gallery ids=""\]<\/p>){1,}/g', '$1', $content);