[英]Java regex matches method returning false
我正在尝试制作一个正则表达式来检测字符串中是否有日期,无论它是:
DD/MM/YYYY
DD/MM/YY
MM/DD/YYYY
MM/DD/YY
YYYY/MM/DD
YY/MM/DD
我尝试使用Pattern.matches()
在 class 中对其进行测试,但它返回false
,即使我的字符串中有一些日期并且regex101似乎表明我的正则表达式是正确的。
这是我测试的代码:
import java.util.regex.Pattern;
public class Test {
public static void main(String[] args) {
String line = "31/07/12;401000;02/04/2013;400;";
System.out.println(Pattern.compile("\\d{2,4}/\\d{2}/\\d{2,4}").matcher(line).matches());
}
}
我想知道这是否是一个选项问题,但我找不到那个方向上的任何 go。 我该怎么做才能让它返回true
?
像这样尝试。 检查并查看匹配器是否可以找到任何匹配项,然后打印出匹配的组。
String line = "31/07/12;401000;02/04/2013;400;";
Matcher m = Pattern.compile("\\d{2,4}/\\d{2}/\\d{2,4}").matcher(line);
while (m.find()) {
System.out.println(m.group());
}
印刷
31/07/12
02/04/2013
请注意,您的正则表达式也可能匹配错误指定的日期。 例如,日和月不能同时为四位数。 你最好拥有多种模式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.