preg_replace 替换包含“[”的字符串和“]”
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
在符号前使用
\
来转义它们:\[
、\]
和\|
。Use a
\
before the symbol to escape them:\[
,\]
and\|
.只需在正则表达式中转义它们即可:
"["
=> <代码>“\[”Just escape them in your regexp :
"["
=>"\["
正如其他人已经说过的,您必须使用
\
转义任何特殊字符。您还可以使用 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)