前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >盘点一个字符串处理问题(拆分英文文本)

盘点一个字符串处理问题(拆分英文文本)

作者头像
前端皮皮
发布2022-08-17 18:32:19
2430
发布2022-08-17 18:32:19
举报
文章被收录于专栏:前端进阶学习交流

大家好,我是皮皮。

一、前言

前几天在Python最强王者群有个叫【老松鼠】的粉丝问了一道关于字符串处理问题,如下图所示。

原文本如下所示:

代码语言:javascript
复制
比如"WeLovePython"
转化为为"We love python"

意思就是输出的字符串,第一个是大写,后面全部是小写。

二、实现过程

这里【冷喵】给了一个思路:挨个循环 如果是大写字母检查前面有没有空格 没有空格就加一个 最后把开头的那个空格去掉。这里【瑜亮老师】给了一份代码,如下图所示:

代码语言:javascript
复制
# coding:utf-8

# @Time : 2022/5/4 11:46
# @Author: 皮皮
# @公众号: Python共享之家
# @website : http://pdcfighting.com/
# @File : 字符串.py
# @Software: PyCharm
text = "WeLovePython"
res = ''.join([" "+i if i.isupper() else i for i in text]).strip()
print(res)

思路:如果是大写字母就变成空格+大写,否则就不变。这个代码亲测好使,运行之后结果如下。

这里确实是实现了单词的拆分,每个单词的首字母大写了。不过有个细节需要注意下,题目的要求是除了第一个字母大写外,后面要变小写。所以目前是解决了一半,还有一半需要继续解决。

这里【冷喵】给了一份代码,如下所示:

代码语言:javascript
复制
text = "WeLovePython"
res = ''.join([" " + i if i.isupper() else i for i in text]).strip()
print(res)
b = res[0] + ''.join([i.lower() for i in res[1:]])
print(b)

代码运行之后,结果如下图所示:

【月神】后来在这个代码的基础上,也给了一份代码,如下所示:

代码语言:javascript
复制
text = "WeLovePython"
res = text[0] + ''.join([" " + i if i.isupper() else i for i in text[1:]]).lower()
print(res)

res = ''.join([" " + i if i.isupper() else i for i in text]).strip().capitalize()
print(res)

一共两种方法。

后来【瑜亮老师】也补充了一份代码,思路一致的,具体实现上有所变形。思路:先取出首字母,然后剩余的小写不用动,大写直接变成空格+小写。

代码语言:javascript
复制
text = "WeLovePython"
res1 = text[0] + ''.join([" " + i.lower() if i.isupper() else i.lower() for i in text[1:]])
print(res1)

后来【冯诚】也给了一个代码,本质上是一样的,如下所示。

代码语言:javascript
复制
text = "WeLovePython"
res = ''.join([" "+i if i.isupper() else i for i in text]).strip()
res1=res[:1]+res[1:].lower()
res1

后来【月神】还给了一份正则表达式的代码,有点新奇。

代码语言:javascript
复制
import re

text = "WeLovePython"
result = re.sub(r'\w[A-Z]', lambda x: ' '.join(x.group(0).lower()), text)
print(result)

对正则表达式不熟悉的小伙伴,理解起来还是有点难懂的。这里稍微拆解了下,帮助大家理解,如下图所示:

三、总结

大家好,我是皮皮。这篇文章主要盘点一个字符串处理问题(拆分英文文本),文中给出了五个方法,思路基本上都是一致的,如果你还有其他方法,也欢迎大家积极尝试,一起学习,记得分享给我哦。

最后感谢粉丝【老松鼠】提问,感谢【冷喵】、【逸】、【冯诚】、【瑜亮老师】和【月神】在运行过程中给出的思路和代码建议,感谢粉丝【dcpeng】等人参与学习交流。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-05-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python共享之家 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、前言
  • 二、实现过程
  • 三、总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档