正则表达式:如何在2个或更多个日期中的第二个进行匹配

时间:2019-12-21 17:06:51

标签: regex

我正在尝试仅在可能存在多个日期的第二个日期返回匹配项。在匹配之前或之后,并没有真正一致的单词。这可能吗?

还要注意,日期可以设置为01-01-100101/01/1001January 01, 2001格式(尽管拼写最后一个月的日期并不常见)。

下面是一些我想匹配的文本的示例,加粗的第二个日期是我希望它返回的示例。

此处有一些文本字段
还有其他人
体验:15年3月31日
页面:
1
2129364
23675918互联网
14/04/04
可能在12:04 PM
终极
42159497 93736662
WEB
18/04/11
税项
2018年6月14日

1 个答案:

答案 0 :(得分:0)

我尝试了这段代码,它似乎可以工作

(?<=(.|\n)*?(\d{2}|January)(\s|\/|-)\d{2}(\s|\/|-)(\d{2}|\d{2})(\s|\/|-))(.|\n)*? 
(\d{2}|January)(\s|\/|-)\d{2}(\s|\/|-)(\d{2}|\d{2})(\s|\/|-)

此代码基本上搜索您要查找的模式,先于同一模式,然后可选地被其他符号(包括换行符)环绕。 还有一个建议:如果要测试正则表达式模式,则可能要签出this website

您还可以在两种语言之间切换(我使用过javascript),尽管我认为基本知识基本相同。