如果这是一个重复的问题,请提前抱歉。我没有看到它在其他地方列出。
我正在尝试找到一个正则表达式字符串,它将以 mmddyy 的格式识别出生日期。据我所知,正则表达式不知道个别数字集的开始/结束位置,如果它们彼此相邻。
是否有一种简单的方法可以让regex找到它(不需要分隔符/间距)?
答案 0 :(得分:2)
如下:
^([0-9]{2})([0-9]{2})([0-9]{2})$
第一组是本月的两位数,下一组是当天的两位数,最后一组是年份。
如果你想变得更聪明,你可以确保第一组以0或1开头,而那一天应该从0,1,2或3开始。或许:
^([0-1][0-9])([0-3][\d])([\d]{2})$
如果您不想,也可能不需要使用RegEx。如今,大多数现代框架(Python,.NET,Java等)都有用于解析指定格式的日期的库和方法。这样做还有类型检查和构建本机Date对象的能力。
<强>更新强>
您可以使用OR来验证日期不会超过31:
^([0-1][0-9])([0-2][\d]|[3][0-1])([\d]{2})$
答案 1 :(得分:0)
如果日期和月份总是用完2位数(前面的零),那么当然这不是问题:(\d\d)(\d\d)(\d\d)
即使没有正则表达式,你也可以解决这个问题。
如果不是......不,他们不是一颗银弹。