preg_replace()出现意外结果

时间:2015-12-14 00:22:51

标签: php regex string preg-replace

我有这样的网址:

/catalog/kitchen-knives-and-accessories/?clear_cache=Y

使用preg_replace()我想让它看起来像这样:

section_code=kitchen-knives-and-accessories

将所有内容标记为粗体,我希望从预期结果中输入

现在我正在使用:

#^/catalog/([^/]+)#

作为一个正则表达式,但当我与preg_replace()一起使用时,它并没有给我预期的输出。请参阅:http://www.phpliveregex.com/p/dW1

我需要在正则表达式中更改以获得预期结果?

1 个答案:

答案 0 :(得分:1)

如果你想使用preg_replace(),你必须匹配整个字符串,只需将其替换为捕获组,例如

$newStr = preg_replace("#^.*/catalog/([^/]+).*#", "section_code=$1", $str);