Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在同一字符串中多次替换preg__Php_Preg Replace - Fatal编程技术网

Php 在同一字符串中多次替换preg_

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}}

我有一个文本,我想做一些类似Wiki代码的事情,用[[]]和东西创建链接

我用这个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>%
无法[无法]在%%
好像只有最后一个被替换了,但错了

有什么想法吗?谢谢

修复


我将正则表达式更改为
/\{([a-zA-Z]+)\\\\;([a-zA-Z]+)\\\\\}([a-zA-Z]+)\}/
,现在它可以工作了:感谢您希望将问题标记为已解决。要做到这一点,只需点击左边的勾号来勾选答案。它应该是绿色的。谢谢