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

如何修改Bash正则规则仅校验点分隔的软件版本号格式?

Bash 点分隔版本号校验规则调整方案

核心适配规则

调整后的校验逻辑会严格匹配以下规则:

  • 仅接受英文点.分隔的多段数字版本号,至少包含2段(适配0.1/0.3.2/0.1.141这类示例格式)
  • 每段数字禁止前导零,除非该段本身就是单个0
  • 自动拦截单段数字、带正负号、含非法字符的输入

调整后完整代码

if [[ $1 =~ ^([1-9][0-9]*|0)(\.([1-9][0-9]*|0))+$ ]]; then
     echo 'version is good'
     exit 0
else 
     exit 1
fi

正则逻辑说明

正则^([1-9][0-9]*|0)(\.([1-9][0-9]*|0))+$各部分含义:

  • ^ 匹配字符串开头
  • ([1-9][0-9]*|0) 匹配版本号的第一段:要么是单个0,要么是1-9开头后面跟任意数字(避免前导零)
  • (\.([1-9][0-9]*|0))+ 匹配至少1组「点+合法数字段」,保证版本号至少有2段,且后续每段也符合前导零校验规则
  • $ 匹配字符串结尾,避免多余后缀字符

测试效果参考

输入值校验结果
0.1合法
0.3.2合法
0.1.141合法
1非法(单段)
01非法(单段+前导零)
1.02非法(第二段前导零)
0.非法(末尾带点)
+1.2非法(带正负号)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 17:36:07