以mm / yyyy格式搜索日期

时间:2018-01-06 20:22:43

标签: python regex date

我的文本文件中有mm/dd/yyyy格式以及mm/yyyy格式的日期。如何在不显示mm/yyyy格式的结果的情况下搜索mm/dd/yyyy日期。

我有以下2个场景

  1. mm/yyyy开头的行 - '^\d{1,2}/\d{4}'(此处没问题)
  2. 当日期在行的中间或结尾时出现问题。我有 日期前面有特殊字符和字母。所以约会 例如~09/2009也是必需的,但如果我搜索,则被拒绝 ' \d{1,2}/\d{4}'

    要避免这种情况 我需要一个表达式,使mm/yyyy日期不跟随前进 削减。但出于某种原因,'[^/]\d{1,2}/\d{4}'并不起作用。它 将01/03/2010等日期显示为03/2010

  3. 这是来自ipython的片段

    import re
    text1 = 'Appointment is on 10/06/2009. Next appointment in 07/2009'
    re.findall('[^\/](\d{1,2}/\d{4})',text1)
    

    Out:[' 6/2009',' 07/2009']

    克里希纳

1 个答案:

答案 0 :(得分:0)

您的月/年字符串不得包含前面的斜杠或数字

(?<!\/|\d)\d{1,2}/\d{4}

在你的表达式中,因为你允许一个数字,它选择第一个数字0(不是斜线)和字符串0 6/2009的其余部分 - 匹配模式[^/](\d{1,2}/\d{4}

demo