自定义日记账编号正则表达式修改需求(特定年度周期规则)
适配规则的序列覆盖正则表达式
正则表达式
^(?P<prefix1>INV)(?P<year>\d{4})(?P<prefix2>)(?P<month>)(?P<prefix3>)(?P<seq>\d{3})(?P<suffix>)$
捕获组说明
prefix1:匹配固定前缀INVyear:捕获4位年份(如2023、2024),对应规则中的会计年度(2023年4月1日-2024年3月31日统一用2023,2024年4月1日起用2024)prefix2/prefix3:因新格式无年份与序列号、月份与序列号之间的分隔符,捕获空字符串month:新格式编号中不包含月份信息,捕获空字符串(保留原捕获组结构)seq:捕获3位递增序列号(如001、159),每年4月1日重置为001suffix:新格式无后缀,捕获空字符串
匹配验证
该正则可正确匹配以下示例编号:
INV2023001(2023年4月1日)INV2023159(2024年1月5日)INV2024001(2024年4月1日)
补充提示
若需验证year与实际日期的对应关系(如2024年1-3月必须使用2023),需在正则匹配后通过业务代码补充判断,正则仅负责格式匹配与组捕获。
内容的提问来源于stack exchange,提问作者Y. Boujraf
相关产品推荐
相关产品推荐

