python - 在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
可能不同。
解决方案
您可以捕获被包围的字符,'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'
推荐阅读
- javascript - 谷歌图表:未捕获的类型错误:google.loader.writeLoadTag 不是函数
- python - 如何按字符串中的数字对列表进行排序?
- mysql - MySQL将一列分成两列
- windows - 通过 WCF 的套接字连接协议 net.tcp 的问题
- swift - 创建 JSON SWIFTYJSON
- python-3.x - python中elif语句下无法执行if语句
- scala - scala中的延迟初始化是什么?
- tensorflow - 如何使用 Tensorflow 后端从头开始训练任何 Hugging face 转换器模型(例如 DistilBERT)以回答问题?
- eclipse - 错误:无法找到或加载主类 RDDBasics.CreatingSparkContextWithSparkSession
- python - 使用 Beautiful soup 抓取网页