如果只有第一个组匹配,我正尝试为与第二个组匹配的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格式的配置文件。
答案 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