在同一个字符串中多次Preg_replace


preg_replace multiple times in same string

我有一个文本,我想做一些像Wiki代码,创建链接与[[]]和东西。

我使用这个preg_replace来做到这一点,它似乎工作:

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

问题是,当我有这个文本"can[not] build at %{{types|location|location}}% %{{some|other|stuff}}%"时,它输出如下:

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

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

任何想法?由于

修复!

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