Java 正则表达式匹配日期:如何修正错误?
Pattern.matches('\d{1,2}-[一二三四五六七八九十]+-[\d]{2}', '21-一月-23') 这样判断有问题,怎么修改?
在修改之前,我们先了解一下正则表达式的含义。
正则表达式 '\d{1,2}-[一二三四五六七八九十]+-[\d]{2}' 的含义是:
- '\d{1,2}' 匹配 1 到 2 位数字
- '-' 匹配一个横杠
- '[一二三四五六七八九十]+' 匹配一个或多个汉字中的数字(一到十)
- '-' 匹配一个横杠
- '[\d]{2}' 匹配 2 位数字
根据这个正则表达式,'21-一月-23' 是可以匹配的。但是根据你的问题,你可能希望匹配的是'21-01-23' 这种形式的日期。
要修改正则表达式,可以使用如下的方式:
Pattern.matches('\d{1,2}-\d{2}-\d{2}', '21-01-23')
这个正则表达式的含义是:
- '\d{1,2}' 匹配 1 到 2 位数字
- '-' 匹配一个横杠
- '\d{2}' 匹配 2 位数字
- '-' 匹配一个横杠
- '\d{2}' 匹配 2 位数字
这样的正则表达式可以匹配 '21-01-23' 这种形式的日期。
原文地址: https://www.cveoy.top/t/topic/qz1W 著作权归作者所有。请勿转载和采集!