python捕获组re.sub公司

2024-10-03 11:20:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要使用正则表达式将字符串中每个单词的第一个字母大写:

>>> import re
>>> re.sub(r"\b(\S)", (r"\1").upper(), "foo bar")
'foo bar'

我希望结果是“Foo Bar”。在

我尝试过标题法字符串.capwords,但都存在如下问题:

^{pr2}$

如@Sebastian在下面的评论中建议的那样使用lambda表达式对我很有效。在


Tags: 字符串importre标题foo字母bar单词
2条回答

这似乎也管用:

import string
' '.join([string.capitalize(word) for word in 'foo      bar   1a   '.split(' ')])

输出:

^{pr2}$

如果您正在寻找regex解决方案,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'                      

相关问题 更多 >