正则表达式提取文本中的日期?

时间:2016-08-19 16:22:40

标签: regex

我有以下这些文字。很少有人选择,很少有人没有。

任何9/20/1993 [已选择]

或9/20/93 [已选择]

09.20.1993 [选定]

09/20/1993 [选定]

93/09/20 [选定]

星期三09/20/93并在9/20/1993 12:00 AM完成[未选择] [在文字之间]

1993 - 09 - 20 [未选择] [不予忽略的空格]

9/20/1993 12:00 AM [未选择]

现在我正在使用它:([0-9] {1,4} [\ s *(/? - ?。?\)?\ s *] [0-9] {1,4} [\ S *(/ - ??\)?\ S *] [0-9] {1,4})$

如何选择中间的模式并忽略空格?

注意:[]我有理由。

2 个答案:

答案 0 :(得分:1)

\s*放在字符类之外并使用字边界(\b):

\b(\d{1,2}\s*[/.-]?\s*\d{1,2}\s*[/.-]?\d{1,4})\b

答案 1 :(得分:0)

这个对我来说很有用。

(?i)([0-9] {1,4} [(/? - ?。?\?)] {1,} [0-9] {1,4} [(/? - ? ?\?)] {1,} [0-9] {1,4})

以下是工作示例:https://regex101.com/r/aU9jH6/1

修改@Toto的表达式:https://regex101.com/r/nB4bU2/1