如何将字符串中所有出现的DD / MM / YYYY更改为MM / DD / YYYY格式。
输入字符串:我于2016年8月9日毕业,并于2017年7月1日加入PHD,然后自2011年10月25日开始
到
输出字符串:我于2016年8月8日毕业,于07/01/2017加入PHD,然后从2011年10月25日开始
答案 0 :(得分:2)
您可以使用re.sub
查找并替换所有日期:
>>> import re
>>> s = 'I graduated on 09/08/2016 and joined PHD on 01/07/2017 then since 25/10/2011 I works on'
>>> re.sub(r'(\d{2})/(\d{2})/(\d{4})', r'\2/\1/\3', s)
'I graduated on 08/09/2016 and joined PHD on 07/01/2017 then since 10/25/2011 I works on'
上面将捕获所有出现的模式dd/dd/dddd
,其中d
是三个不同组的数字。然后它将输出一个字符串,其中第一组和第二组已被交换。
答案 1 :(得分:0)
您可以使用re模块和替换功能完成此操作。
import re
# make the re pattern object
# it looks for the following pattern: 2 digits / 2 digits / 4 digits
date_pattern = re.compile(r'\d{2}/\d{2}/\d{4}')
# make the replacement function to be called to replace matches
# takes the match object, splits the date up and swaps the first two elements
def swap_date_arrangement(date_string):
return_string = date_string.group(0).split('/')
return_string[0], return_string[1] = return_string[1], return_string[0]
return '/'.join(return_string)
# test the solution...
input_string = "I graduated on 09/08/2016 and joined PHD on 01/07/2017 then since 25/10/2011 I work on..."
# assign the new string
replaced_string = re.sub(date_pattern, swap_date_arrangement, input_string)
print replaced_string