php - preg_replace() 的意外结果

标签 php regex string preg-replace

我有这样的网址:

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

By using preg_replace() I want to make it look like this:

section_code=kitchen-knives-and-accessories

Marked everything bold, which I want from the input in my expected result

Right now I'm using:

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

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

我需要在正则表达式中更改什么才能获得预期结果?

最佳答案

如果你想使用 preg_replace() 你必须匹配整个字符串并简单地用捕获组替换它,例如

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

关于php - preg_replace() 的意外结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34258055/

相关文章:

php - 查询 Laravel 队列的大小

php - Laravel 插入多个表和多个数据

php - 尝试创建自定义日志 channel Laravel 5.6

regex - 自定义 `git log` 并在 `@` 处截断作者电子邮件的最简单方法是什么?

javascript正则表达式从字符串中选择[]中的文本

Java,正则表达式捕获模式的多次出现

c# - 不使用拆分功能比较版本号

php - 如何在 php 中暂停执行、保存状态并稍后从同一点继续?

javascript - 匹配重复模式

javascript - 如何从文本区域中突出显示的文本中获取相邻字符?