Ruby on rails 数字的Ruby正则表达式,每个数字组应遵守一些规则

Ruby on rails 数字的Ruby正则表达式,每个数字组应遵守一些规则,ruby-on-rails,ruby,Ruby On Rails,Ruby,我需要构建一个表达式(num),但是构造应该遵守一些规则 我需要检查一些组中的数字(13位) 我成功地构建了一个(见下文),但我需要添加一些规则 [1-9]{1}.?[0-9]{2}.?[0-9]{2}.?[0-9]{2}.?[0-9]{3}.?[0-9][1]{0,20} 规则如下: 第3组=>[0-9]{2}应该只像1,2,3,4,5,6,7,8,9,10,11,12(月) 第4组=>[0-9]{2}应仅类似于1,2,…31(天) 组5=>[0-9]{2}应该只像1,2,3…。。五十三 我如

我需要构建一个表达式(num),但是构造应该遵守一些规则 我需要检查一些组中的数字(13位) 我成功地构建了一个(见下文),但我需要添加一些规则

[1-9]{1}.?[0-9]{2}.?[0-9]{2}.?[0-9]{2}.?[0-9]{3}.?[0-9][1]{0,20}

规则如下:

第3组=>[0-9]{2}应该只像1,2,3,4,5,6,7,8,9,10,11,12(月)

第4组=>[0-9]{2}应仅类似于1,2,…31(天)

组5=>[0-9]{2}应该只像1,2,3…。。五十三

我如何定义这些规则

谢谢

  • 通过在
  • 使用代码验证转换为整数后的值

  • 并非所有的问题都是regex的强项:实现(相对)复杂的业务规则就是其中之一。这不是regex的强项:这里的regex更难修改、理解和调试。

    您能发布一个输入字符串示例吗?谢谢您的回答。我需要在数字中确定一些规则:我有一个6位数的数字代表日期:前两位数代表一年中的最后两位数(2018年起18位),后两位数代表月份(01,02,…12),最后两位数代表日期(1,2,…31)。使用这些规则,我可以验证一个数字是否遵守这些规则。例120331=>正常,121445不正常(第14个月和第45天)