猿问

如何在python中获取这个正则表达式

我有这个字符串:

Sat Apr 18 23:22:15 PDT 2009

我想提取

23

我应该得到什么?像\d\w


一只名叫tom的猫
浏览 174回答 3
3回答

月关宝盒

使用 datetime 解析 datetime 字符串,然后可以轻松地单独提取所有部分from datetime import datetimedtime = datetime.strptime('%a %b %d %H:%M:%S %Z %Y', 'Sat Apr 18 23:22:15 PDT 2009')hour = dtime.houryear = dtime.year# etc.有关更多详细信息,请参阅文档:

皈依舞

您可以使用re.split空格或冒号拆分并获取第 4 个元素:import resomedate = "Sat Apr 18 23:22:15 PDT 2009"re.split('\s|\:', somedate)['Sat', 'Apr', '18', '23', '22', '15', 'PDT', '2009']hour = re.split('\s|\:', somedate)[3]你也可以这样解压:day_of_week, month, day_of_month, hour, minute, second, timezone, year = re.split('\s|\:', somedate)这将使您有更多的访问权限否则,我会采用 @liamhawkins 对 datetime 模块的建议编辑:如果你正在寻找类似的访问范式到datetime对象,你可以使用一个namedtuple从collections模块:from collections import namedtupledate_obj = namedtuple("date_obj", ['day_of_week', 'month', 'day_of_month', 'hour', 'minute', 'second', 'timezone', 'year'])mydatetime = date_obj(*re.split('\s|\:', somedate))hour = mydatetime.hour

千万里不及你

如果它真的只是一个字符串并且你想要的数据总是在同一个位置你可以这样做。String = "Sat Apr 18 23:22:15 PDT 2009"hour = String[11:13]print(hour)这返回,23即使它来自日期时间或其他东西,这也是一样的。如果这是函数的其他输出,您可以将其转换为字符串,然后以相同的方式提取数据。hour = str(some_output)[11:13]但是,如果您不确定您想要的数据将始终位于字符串的同一位置,那么我会建议以下内容。import resomestring = "More text here Sat Apr 18 23:22:15 PDT 2009 - oh boy! the date could be anywhere in this string"regex = re.search('\d{2}\:\d{2}\:\d{2}', somestring)hour = regex.group()[:2]print(hour)regex.group() 正在返回,23:22:15然后 [:2] 提取前两项返回,23
随时随地看视频慕课网APP

相关分类

Python
我要回答