如何用正则表达式解析‘PUBLIC001’格式文件名并校验日期范围?
正则表达式方案:匹配PUBLIC开头+年日(001-366)的文件名
最终正则表达式
^PUBLIC(00[1-9]|0[1-9]\d|[12]\d{2}|3[0-5]\d|36[0-6])$
规则拆解
^PUBLIC:强制匹配字符串开头的固定文本PUBLIC,确保文件名以此内容起始- 分组内的分支覆盖所有有效三位数字范围:
00[1-9]:匹配001-009的日期0[1-9]\d:匹配010-099的日期[12]\d{2}:匹配100-299的日期3[0-5]\d:匹配300-359的日期36[0-6]:匹配360-366的日期
$:确保字符串在此处结束,避免文件名包含额外后缀或多余字符
关于数字最大值限制的确认
完全可以限制最大值为366。上述正则通过分区间精准匹配,既排除了000这类无效值,也拒绝了367及以上的超出范围数字,严格限定了三位数字在001-366的有效区间内。
内容的提问来源于stack exchange,提问作者Marco
相关产品推荐
相关产品推荐

