如何编写正则表达式提取URL首个斜杠后至首个横杠前的数字
正则提取URL指定数字实现方案
需求适配逻辑
- 自动跳过URL协议、域名部分(即第一个单斜杠之前的所有内容)
- 仅捕获域名后首个单斜杠之后、紧跟的第一个横杠之前的纯数字内容
可用正则表达式
核心正则:^https?:\/\/[^\/]+\/(\d+)-.*$
各部分逻辑说明:
^https?:\/\/:匹配http/https开头的标准URL协议头[^\/]+:匹配完整域名内容,直到遇到下一个斜杠停止\/:匹配域名后的第一个单斜杠分隔符(\d+):唯一捕获组,匹配1位及以上的数字,即最终要提取的目标值-.*:匹配数字后紧跟的第一个横杠以及之后的所有剩余内容
调用示例
JavaScript 示例
const testUrl = 'http://galleries.video.com/39061-all_other-text' const numRegex = /^https?:\/\/[^\/]+\/(\d+)-.*$/ const result = testUrl.match(numRegex) const target = result ? result[1] : '' // 输出结果:39061
Python 示例
import re test_url = 'http://galleries.video.com/39061-all_other-text' num_regex = r'^https?://[^/]+/(\d+)-.*$' match_res = re.match(num_regex, test_url) target = match_res.group(1) if match_res else '' # 输出结果:39061
特殊场景适配
如果处理的URL不带http/https协议头,可将正则开头的协议匹配部分删除,改用如下正则即可:^[^\/]+\/(\d+)-.*$
内容的提问来源于stack exchange,提问作者bpy
相关产品推荐
相关产品推荐

