URL格式的条件正则表达式


Conditional regex for URL formatting

正在寻找一个高效的正则表达式来完成

/url-example-123.shtml&/url-example-25.shtml

/url-example-3

目标:

  1. 移除.shtml

  2. 如果数字在25125 之间,则替换为3

由于您没有给出语言,我只能给您一个正则表达式。您可以使用以下内容来匹配25&125:(?:(?:1[0-1][0-9])|(?:12[0-5]))|(?:[^'d](?:2[5-9])|(?:[^'d](?:[3-9][0-9])))。然后你可以用那场比赛和一个3换一个位置。如果结尾总是有一个.shrml,那么你可以把它添加到表达式的末尾。

这个问题很模糊。不确定如果没有数字或数字超出给定范围会发生什么。既然您已经指定了PHP,我就编辑了我的答案:

echo preg_replace(
  "/(?<='/url-example-)(2[5-9]|[4-9][0-9]|1[01][0-9]|12[0-5]).shtml/",
  "3",
  myUrl);