我有一个字符串。我需要删除render_dynamic_content(,留下文本,然后)从字符串中删除 next 。模式内的文本可以不同。例子:some ( text {{ render_dynamic_content(dynamic_html.POS_A_IMG) }} another ) text {{ render_dynamic_content(dynamic_html.POS_B_IMG) }}预期结果应该是:some ( text {{ dynamic_html.POS_A_IMG }} another ) text {{ dynamic_html.POS_B_IMG }}我想:$string = 'some ( text {{ render_dynamic_content(dynamic_html.POS_A_IMG) }} another ) text {{ render_dynamic_content(dynamic_html.POS_B_IMG) }}';
$content = preg_replace('/render_dynamic_content([\s\S]+?)/', '', $string);结果是:some ( text {{ dynamic_html.POS_A_IMG) }} another ) text {{ dynamic_html.POS_B_IMG) }}我需要)在dynamic_html.POS_A_IMG和之后删除dynamic_html.POS_B_IMG
1 回答
慕哥6287543
TA贡献1831条经验 获得超10个赞
您已经接近了,但是您需要在您的模式中包含(并转义)括号,然后将捕获的部分(您要保留的部分)放在替换中而不是空字符串中。
$string = 'some ( text {{ render_dynamic_content(dynamic_html.POS_A_IMG) }} another ) text {{ render_dynamic_content(dynamic_html.POS_B_IMG) }}';
$content = preg_replace('/render_dynamic_content\(([\s\S]+?)\)/', '\1', $string);
echo $content;
注意:某些其他模式可能更有效,也可能无效。出于这个答案的目的,我不打算尝试优化它。
- 1 回答
- 0 关注
- 164 浏览
添加回答
举报
0/150
提交
取消