操作 preg_replaces 的“replace”价值

发布于 2024-09-29 20:51:19 字数 373 浏览 3 评论 0原文

我正在尝试使用大写副本更改 preg_replace 中的匹配值,但似乎无法弄清楚......

我已经尝试过:

preg_replace("#\[name=((?:keywords)|(?:description))\]#is", "[name=" . strtoupper($1) . "]" ,$str )

preg_replace("#\[name=((?:keywords)|(?:description))\]#is", "[name={strtoupper($1)}]" ,$str )

没有任何效果。

非常感谢任何帮助。

I'm trying to alter the match value from preg_replace with an uppcase copy but cant seem to figure it out...

I've tried:

preg_replace("#\[name=((?:keywords)|(?:description))\]#is", "[name=" . strtoupper($1) . "]" ,$str )

and

preg_replace("#\[name=((?:keywords)|(?:description))\]#is", "[name={strtoupper($1)}]" ,$str )

but none work.

any help is muchly appreciated.

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

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

发布评论

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

评论(2

北笙凉宸 2024-10-06 20:51:19

您可以将 e 修饰符用作:

preg_replace("#\[name=((?:keywords)|(?:description))\]#ise", "'[name='.strtoupper('\\1'). ']'" ,$str )

代码实际操作

You can use the e modifier as:

preg_replace("#\[name=((?:keywords)|(?:description))\]#ise", "'[name='.strtoupper('\\1'). ']'" ,$str )

Code In Action

哭了丶谁疼 2024-10-06 20:51:19

您可以使用回调函数和 preg_replace_callback

例如(未经测试):

preg_replace(
    "#\[name=((?:keywords)|(?:description))\]#is",
    create_function('$matches', 'return "[name=" . strtoupper($matches[1]) . "]"'),
    $str
)

You can use a callback function and preg_replace_callback for this.

E.g. (untested):

preg_replace(
    "#\[name=((?:keywords)|(?:description))\]#is",
    create_function('$matches', 'return "[name=" . strtoupper($matches[1]) . "]"'),
    $str
)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文