正在寻找一个高效的正则表达式来完成
/url-example-123.shtml
&/url-example-25.shtml
到/url-example-3
目标:
-
移除
.shtml
-
如果数字在
25
和125
之间,则替换为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);