java正则提取⽇期格式_使⽤正则表达式从字符串中提取⽇期
和时间
我正在研究⼀个正则表达式,它接受所有可能的⽇期和时间格式,从句⼦中提取它们 .
这是我的正则表达式:
@"(?:(?:31(\/|-|\.)(?:0?[13578]|1[02]|(?:Jan|Mar|May|Jul|Aug|Oct|Dec)))\1|(?:(?:1|30)(\/|-|\.)(?:0?[1,3-9]|1[0-2]|
(?:Jan|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec))\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:29(\/|-|\.)(?:0?2|(?:Feb))\3(?:(?: (?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:0?[1-9]|1\d|2[0-8]) (\/|-|\.)(?:(?:0?[1-9]|(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep))|(?:1[0-2]|(?:Oct|Nov|Dec)))\4(?:(?:1[6-9]|[2-9]\d)?\d{2})(?: [\D]*)(?\d{1,2}\:\d{2}\s(?:A|P)M)";
⽬前,正则表达式在句⼦中的任何位置提取时间时都能很好地⼯作,但只有当它位于句⼦的开头时才提取⽇期 . 此外,如果句⼦中有第⼆个⽇期,则正则表达式不会对其进⾏确认,但如果在⽂本与⽇期旁边的⽂本匹配之后直接存在⽂本 .
例如:
Meet me on 31/07/2019 at 3:00 PM to celebrate and then the meeting will be on 03/08/2019 at 12:00 PM.
正则表达式应该匹配:
时间正则表达式java
1) 31/07/2019
2) 3:00 PM
3) 03/08/2019
4) 12:00 PM
Note: 应该从句⼦的任何部分提取预期的输出(Beginning,Middle,End)