我正在为一个青少年足球(足球)俱乐部的客户开发一个网站。他们有许多不同的团队,我在WordPress中创建了类别,例如Under 7s Falcons(slug = under-7s-falcons
)。对于网站的一部分,我需要使用类别slug链接到每个Team页面,但是这些页面的URL格式略有不同:/under-7s/falcons
。我一直在尝试使用PHP的preg_replace()
函数将-
位后面的/under-##s-falcons
替换为破折号,因此它显示为/under-##s/falcons
。这是我的代码:
$teamPage = preg_replace("/under-[1-9]{1,2}s-/", "/", $teamPage);
正如你所看到的,我试图匹配'在'之后'和两个数字之后的-
(每个年龄,最多16个,但我已经把1-9放在了更容易的位置)。但是,这只是用under-##s
替换整个/
位。我如何更改它,以便仅-
替换为/
?
感谢您的帮助:)
答案 0 :(得分:1)
您可以简单地使用capturing group来实现此目的。
$teamPage = preg_replace("/(under-[1-9]{1,2}s)-/", "$1/", $teamPage);
或者您可以使用\K
转义序列重置报告的匹配的起始点,并且不再包含任何以前消费的字符。
$teamPage = preg_replace("/under-[1-9]{1,2}s\K-/", "/", $teamPage);