python - 如何用 Python 正则表达式交换大小写?
问题描述
我试图制作一个单行函数来交换字符串大小写,但它不起作用。一切都是有道理的,但是该函数返回的是传入它的相同字符串,没有任何更改。
import re
def swap_case(string):
return re.sub('([A-Z])([a-z]+)', r'\1'.lower()+'\2'.upper(), string)
解决方案
您的正则表达式模式可能与输入字符串的结构不匹配,例如,如果第一个字符是小写,然后是第二个大写。这是一个使用re.sub
回调函数的版本:
def swap_case(string):
return re.sub(r'.', lambda x: x.group().upper() if x.group() == x.group().lower() else x.group().lower(), string)
inp = "Hello World"
print(swap_case(inp)) # hELLO wORLD
上述解决方案通过将每个字符从小写转换为大写,反之亦然。
推荐阅读
- javascript - Javascript函数更改标题
- reactjs - react-big-calendar 是否可以垂直显示星期和月份?
- flutter - 为什么将 Map 分配给新变量就像通过引用传递一样?
- javascript - 如何在数组中获取我的 documentSnapshot?
- android - Flutter Webview 抛出编译错误-ThreadedInputConnectionProxyAdapterView location: class InputAwareWebView
- r - 两个不同维度的矩阵之间的相关性
- .net - Saxon EE .Net 版本评估,验证 xsd 时出现 Method not found 异常
- python - MinMaxScaler 用于 fit 和 inverse_transform 中的不同形状
- android - 有没有办法将自定义按钮/小部件放入 YouTube 片段中?
- django - Django模板中的外部网址