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

如何编写正则匹配前缀不带/的版本号子串

正则匹配无前置斜杠的版本号解决方案

问题根因

  • 初始编写的正则[0-9]+.[0-9]未对.做转义处理,正则中.为通配符,可匹配任意单个字符,会误命中12a3这类非版本号内容
  • 尝试使用的(?!/)为负向前瞻断言,作用是校验当前位置后方的内容不匹配/,而需求是校验版本号前方是否存在/,断言方向完全错误,因此无法过滤前缀带/的内容

实现方案

方案1:主流环境通用(支持负向后行断言)

Python 3.7+、JavaScript ES2018+、Java 9+、PHP 7.2+等绝大多数新版本正则引擎都支持负向后行断言,直接使用如下正则即可:
(?<!/)\d+\.\d+

验证效果:

输入Hellothisisastring 12.3 blabla → 成功匹配12.3,符合预期
输入Hellothisisastring /12.3 blabla → 无匹配结果,符合预期

方案2:旧环境兼容(不支持负向后行断言)

如果使用的正则引擎不支持负向后行断言,可以通过捕获组实现,正则如下:
(?:^|[^/])(\d+\.\d+)
使用时提取第一个捕获组的内容,就是目标版本号。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 07:45:05