如果只有第一组匹配,如何匹配第二组

时间:2019-11-01 18:16:22

标签: python regex python-datetime

如果只有第一个组匹配,我正尝试为与第二个组匹配的python脚本编写正则表达式。

如果文本如下所示,我正在尝试获取日期:

Cancel Date: 08/09/19
Cancellation Date: 08/05/19

如果文本不是上述内容,则不应获取日期。 例如,到期日期:12/34/12不应匹配或获取日期。

当前正则表达式解决方案:

(Cancel Date:|Cancellation Date:)[\s\n\r\t]*(\d{1,2}/\d{1,2}/\d{2})

我正在使用regex.search()。group(2)来获取信息,但是似乎一直在获取日期所需的位置而出现none类型的属性错误。任何帮助或替代解决方案表示赞赏。 我正在将正则表达式捕获为xml格式的配置文件。

1 个答案:

答案 0 :(得分:-1)

这似乎对我有用。您是否正确地逃脱了正则表达式模式,或使其成为原始字符串?

import re as regex

strings = [
    "Cancel Date: 08/09/19",
    "Cancellation Date: 08/05/19",
    "Due date: 12/34/12"
]

pattern = "Cancel(lation)? Date:[\s]*(\\d{1,2}/\\d{1,2}/\\d{2})"

for string in strings:
    match = regex.match(pattern, string)
    if match is None:
        print("No Match")
    else:
        print(match.group(2))

输出:

08/09/19
08/05/19
No Match