使用 header 和尾巴搜索并替换为正则表达式

Search And Replace With Regex with header and tail

我是正则表达式的新手,我想搜索并替换每次出现的“变量”.mean() 为平均值(“变量”)

m863991.mean()average(m463641)

m863992.mean()average(m463642)

其中变量的开头以m开头,以1或2结尾,中间有5位数字。

您可以使用 re.sub 传递 lambda 作为替换文本。您可以使用模式 (.*?)\.mean\(\),并用括号将捕获的组括起来,并以 average

开头
>>> import re
>>> text='m863991.mean()'
>>> re.sub('(.*?)\.mean\(\)', lambda  x: 'average('+x.group(1)+')', text)
'average(m863991)'

但具体来说,正如您提到的这些值的标准,您可以对以 m 开头、中间 5 位数字和结尾的值使用模式 (m\d{5}[12])\.mean\(\)有 1 或 2,最后 .mean()

>>> re.sub('(m\d{5}[12])\.mean\(\)', lambda  x: 'average('+x.group(1)+')', text)
'average(m863991)'