从字符串末尾查找DATE匹配项

时间:2019-12-30 23:23:36

标签: regex

我具有以下正则表达式语法,这些语法将与找到的第一个日期匹配。

([0-9]+)/([0-9]+)/([0-9]+)

但是,我想从内容的结尾开始并向后搜索。换句话说,在下面的示例中,我的语法将始终与第一个日期匹配,但是我希望它与最后一个日期匹配。

Some Text here
01/02/15
Some additional
text here.
10/04/14
Ending text
here

我相信可以通过使用负前瞻来实现,但是我所有的尝试都因此失败,因为我对RegEx的理解不够。帮助将不胜感激。

注意:我的应用程序使用RegEx PCRP。

1 个答案:

答案 0 :(得分:1)

您可以使用内联修饰符(?s)使点与换行符匹配,并匹配到字符串的结尾。

然后利用回溯直到日期的最后一次出现,例如pattern,并在第一个数字之前加上单词边界。

使用\K忘记匹配的内容并匹配日期(如模式)。

^(?s).*\b\K[0-9]+/[0-9]+/[0-9]+

Regex demo

请注意,该模式非常广泛,并且不会验证日期本身。