如何使用正则仅提取路径中.jsp后缀前的最后一段文件名内容
正则提取路径中.jsp后缀的文件名主体
你原来的正则中.*是贪婪匹配,会从第一个/开始一直匹配到末尾的.jsp,因此会返回完整路径。要提取最后一段路径中.jsp前面的info内容,使用捕获组+精确匹配规则即可实现。
修改后的代码示例:
str = "/mypage/account/info.jsp" const matchResult = str.match(/\/([^/]+)\.jsp$/) // 提取捕获组中的目标内容 const targetContent = matchResult ? matchResult[1] : '' // targetContent 最终值为 "info"
正则规则说明
\/:匹配路径分隔符/([^/]+):第一个捕获组,匹配1个及以上非/的字符,不会跨路径段匹配,正好对应我们要提取的文件名主体\.jsp:匹配固定的.jsp后缀$:锚定匹配到字符串末尾,确保匹配的是路径最后一段的.jsp后缀,避免路径中间出现.jsp字符时匹配错误
如果你的运行环境支持正则具名捕获组,也可以用可读性更高的写法:
const matchResult = str.match(/\/(?<filename>[^/]+)\.jsp$/) const targetContent = matchResult ? matchResult.groups.filename : ''
内容的提问来源于stack exchange,提问作者Element All
相关产品推荐
相关产品推荐

