2024-10-03 11:20:37 发布
网友
我需要使用正则表达式将字符串中每个单词的第一个字母大写:
>>> import re >>> re.sub(r"\b(\S)", (r"\1").upper(), "foo bar") 'foo bar'
我希望结果是“Foo Bar”。在
我尝试过标题法字符串.capwords,但都存在如下问题:
如@Sebastian在下面的评论中建议的那样使用lambda表达式对我很有效。在
这似乎也管用:
import string ' '.join([string.capitalize(word) for word in 'foo bar 1a '.split(' ')])
输出:
如果您正在寻找regex解决方案,re.sub函数可以作为第二个参数接收函数:
re.sub
>>> def t(x): ... if x: ... return x.group(0).upper() >>> re.sub(r"\b(\S)", t, "foo bar") 'Foo Bar' >>> re.sub(r"\b(\S)", t, "1foo bar") '1foo Bar'
这似乎也管用:
输出:
^{pr2}$如果您正在寻找regex解决方案,
re.sub
函数可以作为第二个参数接收函数:相关问题 更多 >
编程相关推荐