0

好吧,我正在尝试做一些非常简单的事情,但结果却很复杂。
我有这个字符串 -

帖子/6

例如,我想用 -

发布/查看/6

所以我尝试使用以下模式替换它 -

/post/[1-9-az]/

和替换模式 -

查看/$0

但由于某种原因,返回的字符串是这个字符串 -

/查看/发布/6

也许你们知道解决这个问题的方法吗?我非常感谢您的帮助。

4

3 回答 3

2

您可以简单地使用str_replace()不需要正则表达式:

echo str_replace('post/', 'post/view/', $str);
于 2013-06-30T07:16:23.013 回答
1

这是预期的结果

$0表示已匹配的完整字符串,即post/6在您的情况下

您可以使用环视

preg_replace('/(?<=post)(?=\/[\da-z])/',"/view",$txt);

或者

preg_replace('/(post)(\/[\da-z])/',"$1/view$2",$txt);
于 2013-06-30T07:15:07.633 回答
1

你可以使用搜索模式

~post/([1-9-a-z])~

带替换模式

post/view/$1
于 2013-06-30T07:24:17.393 回答