Java正则表达式匹配点分隔整数版本:匹配10.1及以上/更高/更低版本
Java版本号匹配正则方案
以下是针对三个版本匹配需求的正则实现,均适配Java环境(注意转义符\\):
1. 匹配10.1及更高版本
正则表达式:
^((1[1-9]|[2-9]\d+)\.\d+(\.\d+\.\d+)*)|(10\.(1(\.\d+\.\d+)*|[2-9]\d+(\.\d+\.\d+)*))$
匹配逻辑:
- 主版本号大于10(如11.x、20.x等),后续版本号无限制
- 主版本号等于10,次版本号大于1(如10.2、10.10等),后续版本号无限制
- 主版本号等于10且次版本号为1,包含10.1本身及所有后续子版本(如10.1.0.0、10.1.5等)
2. 匹配高于10.1的版本(不含10.1及等价版本)
正则表达式:
^((1[1-9]|[2-9]\d+)\.\d+(\.\d+\.\d+)*)|(10\.([2-9]\d+|\d{3,})(\.\d+\.\d+)*)|(10\.1\.((0*\.)*[1-9]\d*)+)$
匹配逻辑:
- 主版本号大于10(如11.0、15.3.2等)
- 主版本号等于10,次版本号大于1(如10.2、10.10.1等)
- 主版本号等于10且次版本号为1,但后续至少存在一个非零子版本(如10.1.1、10.1.0.0.1等,排除10.1、10.1.0.0这类等价版本)
3. 匹配低于10.1的版本(不含10.1及等价版本)
正则表达式:
^(([0-9]|[1-9]\d{0,})\.\d+(\.\d+\.\d+)*)|(10\.0(\.\d+\.\d+)*)$
匹配逻辑:
- 主版本号小于10(如9.1、8.0.3、0.5等)
- 主版本号等于10,次版本号为0(如10.0、10.0.2.1等)
内容的提问来源于stack exchange,提问作者Sangli
相关产品推荐
相关产品推荐

