要捕获两种不同日期时间格式的正则表达式,可以使用分组和管道符号来匹配不同的格式。下面是一个示例代码:
import re
# 定义两种日期时间格式的正则表达式
pattern = r'(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})|(\d{2}/\d{2}/\d{4} \d{2}:\d{2}:\d{2})'
# 测试字符串
string = 'Today is 2022-01-01 12:34:56. Tomorrow is 01/02/2022 23:45:01.'
# 使用正则表达式匹配日期时间格式
matches = re.findall(pattern, string)
# 输出匹配结果
for match in matches:
if match[0]:
print('Format 1:', match[0])
else:
print('Format 2:', match[1])
输出结果:
Format 1: 2022-01-01 12:34:56
Format 2: 01/02/2022 23:45:01
在上面的示例代码中,定义了两种日期时间格式的正则表达式 (\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})
和 (\d{2}/\d{2}/\d{4} \d{2}:\d{2}:\d{2})
。使用 |
管道符号将两个正则表达式合并在一起,表示匹配其中任意一个。
然后,使用 re.findall()
函数在字符串中查找匹配的日期时间格式,并将结果存储在 matches
列表中。
最后,遍历 matches
列表,根据分组的索引判断匹配到的是哪种格式,并输出相应的结果。