如何编写转换为:
的preg_replace字符串"[[ STRING1 | STRING 2 ]]"
到
<a href='STRING 2'>STRING1</a>
PHP中的?我无法匹配字符“[”,“]”和“|”因为它们是保留的。
答案 0 :(得分:5)
在符号前使用\
来逃避它们:\[
,\]
和\|
。
答案 1 :(得分:1)
在你的正则表达式中逃避它们:"["
=&gt; "\["
答案 2 :(得分:0)
preg_replace('~\[\[(.+)\|(.+)\]\]~iUs','<a href="$2">$1</a>',$string);
答案 3 :(得分:0)
正如其他人已经说过的那样,你必须使用\
来逃避任何特殊字符。您还可以使用preg_quote来转义传递给正则表达式的文本(如果您正在构建dinamic regexp,则非常有用)