Python 合并多个正则表达式以进行日期识别
我正在编写一个python 2.7.6程序,在输入文件中查找日期的所有实例,即(如果一个文件包含“2014年4月9日”“星期二”“1980年2月14日”“圣诞节”,它将在一个文件中查找所有这些实例)。由于日期可以用许多不同的方式表示,我为不同类型的日期使用了单独的正则表达式。我想把所有单独的正则表达式合并成一个大的正则表达式,这样它就可以按照日期在文件中出现的顺序查找每个“类型”的日期 我有以下代码要测试“2014年4月9日”之类的日期 在下一行中,我匹配与1980年2月14日相似的日期,如下所示Python 合并多个正则表达式以进行日期识别,python,regex,Python,Regex,我正在编写一个python 2.7.6程序,在输入文件中查找日期的所有实例,即(如果一个文件包含“2014年4月9日”“星期二”“1980年2月14日”“圣诞节”,它将在一个文件中查找所有这些实例)。由于日期可以用许多不同的方式表示,我为不同类型的日期使用了单独的正则表达式。我想把所有单独的正则表达式合并成一个大的正则表达式,这样它就可以按照日期在文件中出现的顺序查找每个“类型”的日期 我有以下代码要测试“2014年4月9日”之类的日期 在下一行中,我匹配与1980年2月14日相似的日期,如下所
matches = re.findall("(?:(?:[0]?[1-9])|(?:[1][0-2]))[-/](?:(?:[012]?[0-9])|(?:[3][01]))[/-][12][0-9][0-9][0-9]",fileText, re.IGNORECASE)
print matches
我想把它们合并成一个正则表达式。我试过了
matches = re.findall("(?:first regular expression|second regular expression)", textFile, re.IGNORECASE)
print matches
但这只是打印了所有日期,如“2014年4月9日”(这是第一个正则表达式的含义),以及“1980年2月14日”(这是第二个正则表达式的含义)
如果您能帮助我找出如何将2个正则表达式转换为1,我们将不胜感激。只需检查每个正则表达式的每个输入行就可以了吗
for line in input_file:
regex1 = re.findall(pattern,line)
regex2 = re.findall(pattern,line)
if len(regex1) > 0:
for item in regex1:
print(item)
if len(regex2) > 0:
for item in regex2:
print(item)
如果您试图处理大量不同的格式并进行验证,请不要仅使用正则表达式。我已经编写了各个类型,现在我只是尝试合并不同的正则表达式。因此,我不认为重新编写正则表达式会很好地利用我的时间。但这一点很好,我将在将来记住。
for line in input_file:
regex1 = re.findall(pattern,line)
regex2 = re.findall(pattern,line)
if len(regex1) > 0:
for item in regex1:
print(item)
if len(regex2) > 0:
for item in regex2:
print(item)