/* package whatever; // don't place package name! */
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
String input
= "Must be submitted, before twelve o'clock noon on wednesday, june 19, 2013, at which time it will be read."; String regex
= "^(?=.*(due|submit|deadline)[^\\d]*)" + ".*?(january|february|march|april|may|june|july|august|september|october|november|december)"
+ "\\s*(0?[1-9]|[12][0-9]|3[01])(th|rd|nd|st)*,*\\s*((19|20)\\d\\d)";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(input);
if(m.find()){
System.
out.
println(">"+m.
group()); System.
out.
println(">"+m.
group(1)); System.
out.
println(">"+m.
group(2)); System.
out.
println(">"+m.
group(3)); System.
out.
println(">"+m.
group(4)); System.
out.
println(">"+m.
group(5)); }
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC5yZWdleC5NYXRjaGVyOwppbXBvcnQgamF2YS51dGlsLnJlZ2V4LlBhdHRlcm47CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJCVN0cmluZyBpbnB1dCA9ICJNdXN0IGJlIHN1Ym1pdHRlZCwgYmVmb3JlIHR3ZWx2ZSBvJ2Nsb2NrIG5vb24gb24gd2VkbmVzZGF5LCBqdW5lIDE5LCAyMDEzLCBhdCB3aGljaCB0aW1lIGl0IHdpbGwgYmUgcmVhZC4iOwoJCVN0cmluZyByZWdleCA9ICJeKD89LiooZHVlfHN1Ym1pdHxkZWFkbGluZSlbXlxcZF0qKSIKCQkJCSsgIi4qPyhqYW51YXJ5fGZlYnJ1YXJ5fG1hcmNofGFwcmlsfG1heXxqdW5lfGp1bHl8YXVndXN0fHNlcHRlbWJlcnxvY3RvYmVyfG5vdmVtYmVyfGRlY2VtYmVyKSIKCQkJCSsgIlxccyooMD9bMS05XXxbMTJdWzAtOV18M1swMV0pKHRofHJkfG5kfHN0KSosKlxccyooKDE5fDIwKVxcZFxcZCkiOwoJCVBhdHRlcm4gcCA9IFBhdHRlcm4uY29tcGlsZShyZWdleCk7CgkJTWF0Y2hlciBtID0gcC5tYXRjaGVyKGlucHV0KTsKCQlpZihtLmZpbmQoKSl7CgkJCVN5c3RlbS5vdXQucHJpbnRsbigiPiIrbS5ncm91cCgpKTsKCQkJU3lzdGVtLm91dC5wcmludGxuKCI+IittLmdyb3VwKDEpKTsKCQkJU3lzdGVtLm91dC5wcmludGxuKCI+IittLmdyb3VwKDIpKTsKCQkJU3lzdGVtLm91dC5wcmludGxuKCI+IittLmdyb3VwKDMpKTsKCQkJU3lzdGVtLm91dC5wcmludGxuKCI+IittLmdyb3VwKDQpKTsKCQkJU3lzdGVtLm91dC5wcmludGxuKCI+IittLmdyb3VwKDUpKTsKCQl9Cgl9Cn0=