使用 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)'
我是正则表达式的新手,我想搜索并替换每次出现的“变量”.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)'