Php 在同一字符串中多次替换preg_
我有一个文本,我想做一些类似Wiki代码的事情,用[[]]和东西创建链接 我用这个preg_replace来做这件事,它似乎很有效:Php 在同一字符串中多次替换preg_,php,preg-replace,Php,Preg Replace,我有一个文本,我想做一些类似Wiki代码的事情,用[[]]和东西创建链接 我用这个preg_replace来做这件事,它似乎很有效: <?=preg_replace("/\{\{([^\*]+)\|([^\*]+)\|([^\*]+)\}\}/", "<a href='$1.php#$2'>$3</a>", $conditions['pattern']); ?> 问题是,当我有这个文本“不能在%{types | location | location}}
<?=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>%
无法[无法]在%%
好像只有最后一个被替换了,但错了
有什么想法吗?谢谢修复
我将正则表达式更改为
/\{([a-zA-Z]+)\\\\;([a-zA-Z]+)\\\\\}([a-zA-Z]+)\}/
,现在它可以工作了:感谢您希望将问题标记为已解决。要做到这一点,只需点击左边的勾号来勾选答案。它应该是绿色的。谢谢