You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用正则表达式从URL的最后一个斜杠处拆分?

解决URL从最后一个斜杠拆分的问题

嘿,我来帮你搞定这个URL拆分的需求!你之前的正则只能拿到后半部分,是因为没设置捕获分组来同时获取前半段。下面给你两种靠谱的方案:

方案一:正则表达式(同时捕获两部分)

可以写一个包含两个捕获分组的正则,分别匹配最后一个斜杠及之前的内容和最后一个斜杠之后的内容:

^(.*\/)([^\/]+)$
  • 第一个分组 (.*\/):匹配从开头到最后一个斜杠的所有字符(包括斜杠)
  • 第二个分组 ([^\/]+):匹配最后一个斜杠后面的所有非斜杠字符

举个JavaScript的使用例子:

const url = 'http://github.com/members';
const matchResult = url.match(/^(.*\/)([^\/]+)$/);

if (matchResult) {
  const prefix = matchResult[1]; // 输出:http://github.com/
  const suffix = matchResult[2]; // 输出:members
}

如果遇到URL末尾带斜杠的情况(比如http://github.com/members/),可以稍微调整正则兼容这种场景:

^(.*\/)([^\/]+)\/?$

方案二:字符串原生方法(更直观,无需正则)

其实很多编程语言都有字符串查找最后一个字符索引的方法,用这个方法拆分可能更简单,也不容易踩正则的坑:

Python 示例

url = 'http://github.com/members'
last_slash_pos = url.rfind('/')

if last_slash_pos != -1:
    prefix = url[:last_slash_pos]  # 输出:http://github.com
    suffix = url[last_slash_pos+1:]  # 输出:members
else:
    # 处理没有斜杠的情况(比如纯域名)
    prefix = url
    suffix = ''

JavaScript 示例

const url = 'http://github.com/members';
const lastSlashIndex = url.lastIndexOf('/');

let prefix, suffix;
if (lastSlashIndex !== -1) {
  prefix = url.slice(0, lastSlashIndex);
  suffix = url.slice(lastSlashIndex + 1);
} else {
  prefix = url;
  suffix = '';
}

这种方法的好处是逻辑清晰,容易理解,还能方便处理各种边界情况(比如没有路径的纯域名URL)。

内容的提问来源于stack exchange,提问作者Vishal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:23:48