Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将方法应用于在re.sub中捕获组_Python_Python 3.x_Re - Fatal编程技术网

Python 如何将方法应用于在re.sub中捕获组

Python 如何将方法应用于在re.sub中捕获组,python,python-3.x,re,Python,Python 3.x,Re,我想使用re.sub()替换字符串的一部分,但是我找不到将方法应用于捕获组的方法。我的代码是这样的(请记住,这只是为了复制,不是我的实际问题): 重新导入 mystring='你好,很高兴认识你' mystring=re.sub(‘(你好)(很高兴)(认识你)’,r'\1'+r'\2'.lower()+r'\3',mystring) 打印(mystring) >>>你好,很高兴认识你 在上面的例子中,lower()不影响r'\2',有没有办法让这个re.sub返回“你好,很高兴认识你”如果你只

我想使用
re.sub()
替换字符串的一部分,但是我找不到将方法应用于捕获组的方法。我的代码是这样的(请记住,这只是为了复制,不是我的实际问题):

重新导入
mystring='你好,很高兴认识你'
mystring=re.sub(‘(你好)(很高兴)(认识你)’,r'\1'+r'\2'.lower()+r'\3',mystring)
打印(mystring)
>>>你好,很高兴认识你

在上面的例子中,
lower()
不影响
r'\2'
,有没有办法让这个
re.sub
返回“你好,很高兴认识你”

如果你只是想把句子大写,你可以使用
str.capitalize

"hello NICE to meet you".capitalize()
>>> 'Hello nice to meet you'
如果您想要更多,并动态使用匹配正则表达式的值:

re.sub
函数接受一个处理程序作为匹配正则表达式的替换值。处理程序应接收一个类型为
re.Match
的参数

下面是一个使用小写字母的示例:

import re

def handler(match):
    return match.group(1).lower()

re.sub('([A-Za-z]+)', handler, mystring)

如果您只想将句子大写,可以使用
str.capitalize

"hello NICE to meet you".capitalize()
>>> 'Hello nice to meet you'
如果您想要更多,并动态使用匹配正则表达式的值:

re.sub
函数接受一个处理程序作为匹配正则表达式的替换值。处理程序应接收一个类型为
re.Match
的参数

下面是一个使用小写字母的示例:

import re

def handler(match):
    return match.group(1).lower()

re.sub('([A-Za-z]+)', handler, mystring)

您可以使用函数代替字符串作为替换。它将match对象作为参数,并应返回替换的字符串,如中所述:


您可以使用函数代替字符串作为替换。它将match对象作为参数,并应返回替换的字符串,如中所述:


这使得整句话变得小写,而不仅仅是“漂亮”@7koFnMiP我不确定你是否只需要那个特定的案例或更多,请现在看看我的解决方案,如果它仍然不是你需要的-请给我一个更好的解释请查看接受的答案,这段代码返回
你好,很高兴认识你
,而不是
你好,很高兴认识你
,正如我在问题中提到的,给出的示例只是为了复制;我的实际问题不涉及大写这使得整个句子小写而不仅仅是“好”@7koFnMiP我真的不确定你是否只需要那个特定的案例或更多的案例,请现在看看我的解决方案,如果它仍然不是你需要的-请给我一个更好的解释,请查看接受的答案,这段代码返回
你好,很高兴认识你
,而不是
你好,很高兴认识你
,正如我在问题中提到的,给出的示例只是为了复制;我的实际问题不涉及资本化