preg_replace 替换包含“[”的字符串和“]”

发布于 2024-11-25 05:31:34 字数 210 浏览 0 评论 0原文

preg_replace 字符串

"[[ STRING1 | STRING 2 ]]"

编写将: 转换为的

<a href='STRING 2'>STRING1</a>

如何在 PHP 中 ?我无法匹配字符“[”、“]”和“|”因为它们是保留的。

How do I write a preg_replace string that convert:

"[[ STRING1 | STRING 2 ]]"

to

<a href='STRING 2'>STRING1</a>

in PHP? I having trouble matching the characters "[","]" and "|" as they are reserved.

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

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

发布评论

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

评论(4

临风闻羌笛 2024-12-02 05:31:34

在符号前使用 \ 来转义它们:\[\]\|

Use a \ before the symbol to escape them: \[, \] and \|.

撧情箌佬 2024-12-02 05:31:34

只需在正则表达式中转义它们即可: "[" => <代码>“\[”

Just escape them in your regexp : "[" => "\["

久伴你 2024-12-02 05:31:34
preg_replace('~\[\[(.+)\|(.+)\]\]~iUs','<a href="$2">$1</a>',$string);
preg_replace('~\[\[(.+)\|(.+)\]\]~iUs','<a href="$2">$1</a>',$string);
十六岁半 2024-12-02 05:31:34

正如其他人已经说过的,您必须使用 \ 转义任何特殊字符。您还可以使用 preg_quote 转义传递给正则表达式的文本(如果您正在构建动态正则表达式,则非常有用)

As other already said, you have to escape any special characters, using \. You can also use preg_quote to escape the text passed to regular expressions (extremly usefull if you are building dinamic regexps)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文