preg_replace在同一个字符串中多次

时间:2014-08-19 17:24:18

标签: php preg-replace

我有一个文字,我想做像维基代码,用[[]]和东西创建链接。

我正在使用这个preg_replace来做这件事,它似乎有效:

<?=preg_replace("/\{\{([^\*]+)\|([^\*]+)\|([^\*]+)\}\}/", "<a href='$1.php#$2'>$3</a>", $conditions['pattern']); ?>

问题在于,当我有这个文本“可以[不]构建%{{types | location | location}} %% {{some | other | stuff}}%”时,它会输出:

can[not] build at %<a href="types|location|location}}% %{{some.php#other">stuff</a>%

就像只有最后一个被替换,但错了。

有什么想法吗?感谢

1 个答案:

答案 0 :(得分:1)

固定!

我将正则表达式更改为/\{\{([a-zA-Z]+)\|([a-zA-Z]+)\|([a-zA-Z ]+)\}\}/,现在它可以正常工作:D