正規表現を使用して日付と文字列を一致させようとする単純なプログラムがあります。これが私のプログラムです
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/で同じことを試してみると、一致した文字列が表示されます。私が間違っているところを理解するのを手伝ってください。
私は興味深い問題に直面しています。私は私のプログラムの 2 つの部分を持っています。最初の部分では、テキスト ファイルから文字列をコピーしました。問題を理解できません。
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");
}
興味深いのは、ここからプログラムをコピーする場合です。私にとっても問題なく動作します。