首页 > 解决方案 > 在python中的另一个字符串元素之间更改字符串元素

问题描述

让我们假设我们有一个这种形式的字符串,

xstr = 'CıCCkCnow CwCho CyCou CaCre but CwChat CaCm CıC'

现在我想把每个单词C转换成大写字母。例如,上面的字符串应该变成

new_xstr = 'I know Who You Are but What Am I.'

什么样的算法最适合这项工作?我想出了一些东西,但它似乎又长又低效。有任何想法吗?

我的算法是获取每个C字母的索引。将它们配对为 2。获取它们之间的索引值,然后根据这些索引将字符串转换为大写字母。不过,时间太长了……

我想使用某种替换功能,但每个中的字符串C可能不同。

标签: pythonstring

解决方案


您可以捕获被包围的字符,'C'然后替换为.upper

>>> import re
>>> xstr = 'CıCCkCnow CwCho CyCou CaCre but CwChat CaCm CıC'
>>> re.sub('C(\w)C', lambda s: s.group(1).upper(), xstr)
'IKnow Who You Are but What Am I'

如果要捕获多字符序列并将所有字符转换为大写,可以使用.upper

>>> xstr = 'CakClsdaCpoCasdCkC'
>>> re.sub('C(\w+?)C', lambda s: s.group(1).upper(), xstr)
'AKlsdaPOasdK'

推荐阅读