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

获取不含版本后缀与参数的URL最后部分的正则表达式

解决方案

原来的正则(?!\/)(\w+)(?=.js)之所以抓不到正确内容,是因为它会匹配版本后缀里的V2(前面的-符合(?!\/)的条件),而非真正的脚本名。试试下面这个正则,捕获组1就是你要的结果:

\/([^\/-]+)(?:-[vV]\d+)?\.js(?:\?.*)?$

正则各部分说明

  • \/:锁定URL中的最后一个斜杠,确保从脚本文件名的起始位置开始匹配
  • ([^\/-]+):核心捕获组,匹配脚本名称,排除斜杠(避免跨目录误匹配)和减号(防止把版本后缀的-Vx包含进来)
  • (?:-[vV]\d+)?:可选非捕获组,专门匹配-V2、-v3这类版本后缀,v/V不区分大小写,\d+支持任意位数的数字,?表示后缀可有可无
  • \.js:匹配脚本的.js后缀
  • (?:\?.*)?:匹配并忽略URL末尾的参数部分,从?到结尾的所有内容都会被跳过

测试验证

用这个正则匹配你给出的所有示例URL,捕获组1均返回sampleScript:

  • https://s3.amazon-aws.com/bob.success.com/scripts/sampleScript-V2.js?x=123&name=bo-b → 匹配结果:sampleScript
  • https://s3.amazon-aws.com/bob.success.com/scripts/sampleScript.js?x=123&name=bo-b → 匹配结果:sampleScript
  • https://s3.amazon-aws.com/bob.success.com/scripts/sampleScript.js → 匹配结果:sampleScript
  • https://s3.amazon-aws.com/bob.success.com/scripts/sampleScript-v2.js → 匹配结果:sampleScript

特殊情况适配

如果你的脚本名称本身包含减号(比如my-script-V1.js需要提取my-script),可以使用下面这个调整版正则,它允许脚本名包含减号,只会忽略-V+数字格式的版本后缀:

\/([^\/]+?)(?:-[vV]\d+)?\.js(?:\?.*)?$

内容的提问来源于stack exchange,提问作者Luis Angel Aguilar Peña

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 00:27:20