通过两个不同的分隔符分割字符串的最佳方法,将仅包含分隔符的两个单词大写,并将两个分隔符添加回来?

问题描述 投票:3回答:1

我正在编写一个Python脚本,它应该能够通过两个分隔符分割一个字符串:'_'和'。',将由分隔符分割的单词大写(包括分隔符),然后最后放置分隔符回到原来的位置。

所以像:this_is.an_Example string for.You

应该变成:This_Is.An_Example string For.You

现在我有这个:return '_'.join(x.capitalize() for x in re.split('_|\.', str)) + '\n'并没有真正做我想要的。

这样做有什么干净的方法吗?谢谢你的帮助!

python regex string delimiter
1个回答
3
投票

你可以用

import re
s = "this_is.an_Example string for.You"
print(re.sub( r'(?<![^_.])[^\W_]+|[^\W_]+(?=[._])', lambda x: x.group().capitalize(), s))
# => This_Is.An_Example string For.You

参见Python demoregex demo

图案细节

  • (?<![^_.])[^\W_]+ - 一个或多个数字或字母([^\W_]+),紧接着是_,或.,或字符串的开头
  • | - 或
  • [^\W_]+(?=[._]) - 一个或多个数字或字母([^\W_]+),紧接着是_,或.,或字符串结尾。
© www.soinside.com 2019 - 2024. All rights reserved.