如何创建正确的 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 个 /
符号(即 /
是可选的)。
我的 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 个 /
符号(即 /
是可选的)。