为了账号安全,请及时绑定邮箱和手机立即绑定

按模式删除部分字符串

按模式删除部分字符串

PHP
湖上湖 2021-12-03 10:40:04
我有一个字符串。我需要删除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;



注意:某些其他模式可能更有效,也可能无效。出于这个答案的目的,我不打算尝试优化它。


查看完整回答
反对 回复 2021-12-03
  • 1 回答
  • 0 关注
  • 164 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信