我想使用 re.sub()
替换字符串的一部分,但是我找不到将方法应用于捕获组的方法。我的代码如下所示(请记住,这只是为了复制而不是我的实际问题):
import re
mystring = 'Hello NICE to meet you'
mystring = re.sub('(Hello )(NICE)( to meet you)', r'\1' + r'\2'.lower() + r'\3', mystring)
print(mystring)
>>> Hello NICE to meet you
上面的例子中,lower()
不会影响r'\2'
,有什么办法得到这个re.sub
> 返回“你好,很高兴认识你”
最佳答案
您可以使用函数代替字符串作为替换。它将匹配对象作为参数,并应返回替换的字符串,如 the documentation for re.sub 中所述。 :
import re
def replace(match):
return match.group(1) + match.group(2).lower() + match.group(3)
mystring = 'Hello NICE to meet you'
mystring = re.sub('(Hello )(NICE)( to meet you)', replace, mystring)
print(mystring)
# Hello nice to meet you
关于python - 如何应用方法来捕获 re.sub 中的组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63396402/