如何创建正确的 preg_replace 模式?

how to create correct preg_replace pattern?

我的 magento 商店中有这些 url: charogh/product/1298/productname 每个产品的产品名称都会更改,正确的结构是: charogh/product/[0-9]+/[a-zA-z0-9]+

我应该更改 'product/[0-9]+/' 并将其替换为 '' 并在用户输入此 url 时将 url 更改为 'charogh/' 'charogh/product/[0-9]+/' 并且当用户输入 url 时不要替换它 'charogh/product/[0-9]+/productname' 我怎样才能用 preg_replace 或 preg_match 做到这一点?

我使用这个模式,但它在两个结构中都被替换了 $header=preg_replace('//charogh/product/[0-9]+/',"charogh",$header);

感谢您的帮助!

我建议您使用 $ 锚点将匹配锚定在字符串末尾:

'/\/charogh\/product\/[0-9]+\/?$/'

这样您就可以避免匹配在 1+ 位后包含更多数据的字符串。

此外,末尾的 \/? 允许匹配 1 或 0 个 / 符号(即 / 是可选的)。