[英]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.