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

时间:2011-07-19 16:09:00

标签: php preg-replace

如何编写转换为:

的preg_replace字符串
"[[ STRING1 | STRING 2 ]]"

<a href='STRING 2'>STRING1</a>
PHP中的

?我无法匹配字符“[”,“]”和“|”因为它们是保留的。

4 个答案:

答案 0 :(得分:5)

在符号前使用\来逃避它们:\[\]\|

答案 1 :(得分:1)

在你的正则表达式中逃避它们:"[" =&gt; "\["

答案 2 :(得分:0)

preg_replace('~\[\[(.+)\|(.+)\]\]~iUs','<a href="$2">$1</a>',$string);

答案 3 :(得分:0)

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