我有一個簡單的程序,我試圖用正則表達式匹配Date和String。這是我的計劃Java正則表達式不匹配
Pattern r = Pattern.compile("((?:january|february|march|april|may|june|july|august|september|october|november|december)\\s*\\d{1,2}\\,\\s*\\d{4})\\s*\\|\\s*UPDATED", Pattern.CASE_INSENSITIVE | Pattern.DOTALL);
String textRegion = "<span>India Today Online</span>"
+ " New Delhi, October 28, 2013 | UPDATED 11:42 IST "
+ "</div>";
Matcher m = r.matcher(textRegion);
if (m.find()) {
System.out.println("Matched");
} else {
System.out.println("Not Matched");
}
但是當我運行這個程序顯示「不匹配」但是,當我試圖在http://gskinner.com/RegExr/同樣的事情,它讓我看到匹配的字符串。請幫助我瞭解我錯在哪裏。
我正面臨有趣的問題。我有兩個部分我的程序首先顯示不匹配,而第二部分顯示匹配。第一部分我從文本文件中複製了一個字符串。我無法理解這個問題。
String textRegion = "<span>India Today Online</span>"
+ " New Delhi, October 28, 2013 | UPDATED IST"
+ "</div>";
Pattern r = Pattern.compile("((?:january|february|march|april|may|june|july|august|september|october|november|december)\\s*\\d{1,2}\\,\\s*\\d{4})\\s*\\|\\s*UPDATED", Pattern.CASE_INSENSITIVE | Pattern.DOTALL);
System.out.println(textRegion);
Matcher m = r.matcher(textRegion);
if (m.find()) {
System.out.println("Matched");
} else {
System.out.println("Not Matched");
}
Pattern r1 = Pattern.compile("((?:january|february|march|april|may|june|july|august|september|october|november|december)\\s*\\d{1,2}\\,\\s*\\d{4})\\s*\\|\\s*UPDATED", Pattern.CASE_INSENSITIVE | Pattern.DOTALL);
String textRegion1 = "<span>India Today Online</span>"
+ " New Delhi, October 28, 2013 | UPDATED IST"
+ "</div>";
Matcher m1 = r1.matcher(textRegion1);
if (m1.find()) {
System.out.println("Matched");
} else {
System.out.println("Not Matched");
}
有趣的部分是,如果你將從這裏複製程序它的工作對我來說也很好。
即使我在運行代碼時得到了*匹配*。你確定它顯示*不匹配*嗎? – SudoRahul
運行代碼時,我也收到了「匹配」消息。你可能比你想象的要少。 ;) – Henrik
你不需要轉義逗號作爲'\\,' – anubhava