使用正则表达式提取最后一次出现

时间:2014-05-01 14:05:43

标签: regex

我想从源文件中提取日期的最后一次出现。 我使用这个表达式来选择日期:

\d{1,2}(-|\/)\d{1,2}(-|\/)\d{2,4}

如何更改它以便它只选择源文件中遇到的最后日期?

例如,如果这是源:

19-04-2010 random text  
random text  
random text 19/5/1999  
25/12/1991 random text

我希望regex表达式只返回:

25/12/1991

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:3)

您可以使用此否定前瞻来确保仅匹配最后一次:

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

Working Demo

  • 这是方法的正则表达式实现Floris评论,即find x that is not followed by x"
  • 我使用[\s\S]*?,因为OP没有指定正则表达式的工具/语言,而且我不确定是否有任何DOTALL等效标志可用。