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

正则表达式-可选正向后行断言:如何匹配最后/后、.前的字符?

解决最后一个斜杠后、点号前(无点号也适配)的正则匹配问题

我来帮你搞定这个正则匹配需求!你要的是不管目标字符串末尾有没有点号,都能精准捕获**最后一个斜杠(/)之后、第一个点号(.)之前(如果有点号的话)**的内容,也就是示例里的match部分对吧?

推荐正则表达式(支持后行断言的环境)

(?<=\/)[^\/.]+(?=\.|$)

正则拆解:

  • (?<=\/):正向后行断言,确保我们要匹配的内容紧跟在一个斜杠之后,这样就能锁定最后一个斜杠的位置。
  • [^\/.]+:匹配一个或多个既不是斜杠也不是点号的字符,这就是我们要提取的目标内容。
  • (?=\.|$):正向前瞻断言,确保目标内容的后面要么是点号,要么是字符串结尾,完美适配有无点号的两种场景。

兼容旧环境的写法(无需后行断言)

如果你的运行环境不支持正向后行断言(比如旧版JavaScript),可以用这个写法,取第一个捕获组的内容即可:

\/([^\/.]+)(?:\.|$)

测试示例:

  • 输入字符串:https://example.com/test/match → 匹配结果:match
  • 输入字符串:https://example.com/test/match.pdf → 匹配结果:match

两种写法都能精准命中你需要的内容,根据你的实际运行环境选择就好啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 08:14:23