python - 用两个不同的定界符分割字符串的最佳方法,将两个单词大写,只包含一个定界符,然后重新添加两个定界符?
问题描述
我正在编写一个 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'
这并没有真正做到我想要的。
有什么干净的方法吗?谢谢你的帮助!
解决方案
您可以使用
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
图案细节
(?<![^_.])[^\W_]+
- 1 个或多个数字或字母 ([^\W_]+
),前面紧跟_
, 或.
, 或字符串开头|
- 或者[^\W_]+(?=[._])
- 1 个或多个数字或字母 ([^\W_]+
),紧随其后的是_
, 或.
, 或字符串结尾。
推荐阅读
- python-3.x - 有没有办法从 Pytube 获取流的 URL?
- python - 我需要帮助字符串格式化
- javascript - 在 keydown 上从数组中返回非重复的随机项
- python - TensorFlow 忽略了 RTX 3000 系列 GPU
- docker - Windows 无法 ping 虚拟机中的 docker
- json - 如何确定网站的 JSON 响应的超链接(假设网站支持 JSON)?
- python - 从 Python 访问 Gcloud MySQL 时连接超时
- python - Pythons 'DataFrame' 对象不可调用 - FOR ERROR
- javascript - 删除 Javascript 数组上的 getter
- python - 分数正在增加