如何在Python中使用正则表达式替换字符串

she*_*lym 2 python

我需要使用正则表达式替换字符串中的字符的帮助。

输入 :

s3 = ['March/21/2019' , 'Mar/23/2019']
Run Code Online (Sandbox Code Playgroud)

期望的输出:

s3 = ['03/21/2019' , '03/23/2019']
Run Code Online (Sandbox Code Playgroud)

我尝试了一些方法,但似乎都没有对输入产生任何影响:

  1. s3[i] = s3[i].replace(r'Mar[a-z]*', '03')

  2. s3[i] = s3[i].replace(r'(?:Mar[a-z]*)', '03')

有人可以帮助我并告诉我我做错了什么吗?

sch*_*lli 5

这有效。

import re
s3 = ['March/21/2019' , 'Mar/23/2019']
s3 = [re.sub(r'Mar[a-z]*', '03', item) for item in s3]

# ['03/21/2019', '03/23/2019']
Run Code Online (Sandbox Code Playgroud)

当然,您也可以使用 for 循环以获得更好的可读性。

import re
s3 = ['March/21/2019' , 'Mar/23/2019']
for i in range(len(s3)):
    s3[i] = re.sub(r'Mar[a-z]*', '03', s3[i])

# ['03/21/2019', '03/23/2019']
Run Code Online (Sandbox Code Playgroud)