preg_replace,只替换()中的模式部分?

发布于 2024-09-14 04:17:35 字数 485 浏览 5 评论 0原文

很抱歉这个基本问题,但我一直在查看我能找到的有关 preg_replace 的所有信息,但我仍然无法弄清楚这一点..我有一个大字符串,例如这样:

  $string= '# tjs { fassdaf } #fsk { fssf} # fskff { casf }';

当我这样做时,它替换了整个模式,而不仅仅是 ( ) 中的部分,正如我所期望的那样。我想知道如何替换 ( ) 中的部分。感谢

  $pattern= '/#.*tjs.*\{.*(.*)\}/imsU';
  $replacement= "test";
  $return_string = preg_replace ($string, $pattern, $replacement );

预期的替换字符串:

'# tjs {test} #fsk { fssf} # fskff { casf }';

Sorry for this basic question, but I've been looking over all the info about preg_replace I can find and I still can't figure this out.. I have a large string, like this, for example:

  $string= '# tjs { fassdaf } #fsk { fssf} # fskff { casf }';

And when I do this, it replaces the entire pattern, not just the part in ( ) as I expect it to do.. I am wondering how I can just replace the part in ( ).. thanks

  $pattern= '/#.*tjs.*\{.*(.*)\}/imsU';
  $replacement= "test";
  $return_string = preg_replace ($string, $pattern, $replacement );

expected replaced string:

'# tjs {test} #fsk { fssf} # fskff { casf }';

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

魂牵梦绕锁你心扉 2024-09-21 04:17:35
$pattern= '/(#\s*tjs\s*\{\s*)(.*?)(\s*\})/imsU';
$replacement= "test";
$return_string = preg_replace($pattern,'$1'.$replacement.'$3',$string);
$pattern= '/(#\s*tjs\s*\{\s*)(.*?)(\s*\})/imsU';
$replacement= "test";
$return_string = preg_replace($pattern,'$1'.$replacement.'$3',$string);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文