正则表达式简明扼要, 一行代码就能实现挺复杂的功能。
def title(s):
return re.sub(rb"[A-Za-z]+('[A-Za-z]+)?",
lambda mo: mo.group(0)[0:1].upper() +
lambda mo: mo.group(0)[1:].lower(),
s)
解释
正则表达式"[A-Za-z]+('[A-Za-z]+)?"的作用是匹配一个或多个英文字母(大小写均可)组成的单词,这个单词后面可能跟着一个由撇号和一个或多个英文字母组成的序列(如"don't"中的"t")
lambda函数,它接受一个匹配对象mo作为参数。
mo.group(0)表示整个匹配到的字符串。
mo.group(0)[0:1].upper()是将匹配到的字符串的第一个字符转换为大写。
mo.group(0)[1:].lower()是将匹配到的字符串(从第二个字符开始到结束)转换为小写
测试
print(title(b"hello there it's nice to see you"))
结果:
b"Hello There It's Nice To See You"
你学会【废】了吗
标签:function,group,title,regrex,mo,Za,匹配,lambda From: https://www.cnblogs.com/haleylong/p/18262186