我想写一个python代码,其中给定了来自用户的字符串
s = "hello, caps lock people of caps lock stackoverflow !"
并且应该返回"hello, PEOPLE of STACKOVERFLOW !"
注意:PEOPLE Aa和STACKOVERFLOW是大写的。
无法想象如何做到这一点。请帮忙!
我们可以尝试使用带有回调函数的re.sub
:
def to_upper(match):
return match.group(1).upper()
s = "hello, caps lock people of caps lock stackoverflow !"
out = re.sub(r'bcaps lock (S+)', to_upper, s)
print(out)
此打印:
hello, PEOPLE of STACKOVERFLOW !
这里的方法是使用re.sub
来查找每次出现的caps lock
后面跟着某个单词。然后,这个单词匹配被传递给回调函数to_upper()
,然后返回大写版本作为替换。