如何在 Python 中从字符串中提取日期?
在本文中,我们将了解如何在 Python 中从字符串中提取日期。
第一种方法使用正则表达式。要使用它,请导入 re 库,如果尚未安装,则安装它。导入 re 库后,我们可以使用正则表达式“\d{4}-\d{2}-\d{2}”。
要从字符串中提取日期,您必须首先了解日期的格式。要提取日期,只需使用正则表达式和“datetime.datetime.strptime”对其进行解析即可。例如,如果字符串中的日期格式为YYYY−MM−DD,则可以使用以下代码提取和解析它。
示例
在下面给出的示例中,我们以字符串作为输入,并尝试使用正则表达式找出字符串中存在的日期。
import re, datetime str1 = "My Date of Birth is 2006-11-12" print("The given string is") print(str1) day = re.search('\d{4}-\d{2}-\d{2}', str1) date = datetime.datetime.strptime(day.group(), '%Y-%m-%d').date() print("The date present in the string is") print(date)
输出
上面示例的输出如下所示:
The given string is My Date of Birth is 2006-11-12 The date present in the string is 2006-11-12
使用 dateutil() 模块
第二种方法是使用dateutil()库的 parser 类的 parse 方法。此方法返回字符串中存在的任何日期。我们应该发送一个参数 fuzzy 并将其设置为 True,格式应为YYYY−MM−DD。此方法计算字符串中存在的日期并将其作为输出返回。
示例
在下面给出的示例中,我们以字符串作为输入,并尝试找出它是否包含任何日期。
from dateutil import parser str1 = "My Date of Birth is 2006-11-12" print("The given string is") print(str1) date = parser.parse(str1, fuzzy=True) print("The date present in the string is") print(str(date)[:10])
输出
上面示例的输出如下所示:
The given string is My Date of Birth is 2006-11-12 The date present in the string is 2006-11-12
广告