从字符串中拉出日期

时间:2017-09-01 22:01:59

标签: python regex pandas

我想在Python中编写一个正则表达式,从下面的字符串中取出'28 june 1994'并将june转换为6:

fur = "missed intake office visit on 28 june 1994 at sierra vista nursing homesuicidal behavior hx of suicidal be"

我试过了:

fur.extract(r'(?P<day>\d?\d)\s(?P<month>\W+)\s(?P<year>\d+)')

june可以采取多种形式,包括:'jun','june','june','june;'等。

3 个答案:

答案 0 :(得分:0)

你只需要改变六月或其他月份吗?如果你只需要改变六月,我想这已经足够了

re.sub("\d{1,}\sjun[\,e\;]?\s\d{4}","6",yourstring)

答案 1 :(得分:0)

你可以试试这个:

import re

fur = "missed intake office visit on 28 june 1994 at sierra vista nursing homesuicidal behavior hx of suicidal be"

data = re.search("(?P<day>\d{1,})\s(?P<month>[a-zA-Z]+)\s(?P<year>\d{4})", fur)
print(data.groupdict())

输出:

{'month': 'june', 'day': '28', 'year': '1994'}

答案 2 :(得分:0)

您可以使用此正则表达式:

(\d{2})[\s]([a-zA-Z]+)[\s](\d{4})

这将输出三组:

第一个:是一天。

第二个:是月份名称。

第三个:是年份

输出将是:

Full match  30-42   `28 june 1994`
Group 1.    30-32   `28`
Group 2.    33-37   `june`
Group 3.    38-42   `1994`