如何用正则表达式截取URL至最后一个/后的第10个字符
正则表达式直接截取URL到最后一个斜杠后第10个字符的方案
需求说明
需要直接匹配URL中从开头到最后一个斜杠/之后第10个字符的内容,无论URL末尾是否带有斜杠,输出结果一致:
- 输入示例1:
https://www.facebook.com/reel/1a1c6e99h60a3169h86816 - 输入示例2:
https://www.facebook.com/reel/1a1c6e99h60a3169h86816/ - 统一输出:
https://www.facebook.com/reel/1a1c6e99h
避免先匹配最后斜杠后的全部内容再截断的额外开销,直接通过正则完成目标截取。
解决方案
使用以下正则表达式,通过捕获组拼接得到目标内容:
^(.*/)([^/]{10}).*$
正则逻辑
^(.*/):捕获从URL开头到最后一个斜杠的所有前缀内容([^/]{10}):捕获最后一个斜杠后的连续10个非斜杠字符.*$:匹配剩余所有内容(包括末尾可能存在的斜杠)
使用方式
将匹配结果替换为$1$2(即保留两个捕获组的内容),即可直接得到目标输出。
示例验证
- 对输入1执行替换后,输出:
https://www.facebook.com/reel/1a1c6e99h - 对输入2执行替换后,输出:
https://www.facebook.com/reel/1a1c6e99h
内容的提问来源于stack exchange,提问作者d4rkshad0w
相关产品推荐
相关产品推荐

