我具有以下正则表达式语法,这些语法将与找到的第一个日期匹配。
([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。
答案 0 :(得分:1)
您可以使用内联修饰符(?s)
使点与换行符匹配,并匹配到字符串的结尾。
然后利用回溯直到日期的最后一次出现,例如pattern,并在第一个数字之前加上单词边界。
使用\K
忘记匹配的内容并匹配日期(如模式)。
^(?s).*\b\K[0-9]+/[0-9]+/[0-9]+
请注意,该模式非常广泛,并且不会验证日期本身。