有关字符串的转换 - python

2013-08-07 14:43:41 +08:00
 geew
问题如下:
最简单的方法转换 UserName 为 user_name
2090 次点击
所在节点    问与答
6 条回复
clino
2013-08-07 14:49:34 +08:00
你这是在考大家还是咨询怎么做?
geew
2013-08-07 14:51:00 +08:00
@clino 咨询吧 我自己想的方法觉得不好 想问问有没有更加简洁的
qdvictory
2013-08-07 15:06:36 +08:00
str = 'UserName'
''.join(chr(i) if i >= 97 else '_'+chr(i+32) for i in [ord(x) for x in str])[1:]
qdvictory
2013-08-07 15:16:51 +08:00
再加个开头不是大写的。。
str = 'UserName'
prefix = '_'
text = ''.join(chr(i) if i >= 97 else prefix+chr(i+32) for i in [ord(x) for x in str])
text[len(prefix):] if text.startswith(prefix) else text
qdvictory
2013-08-07 15:36:08 +08:00
import re
str = 'UserName'
r = re.compile(r'[A-Z][a-z]+')
li = re.findall(r,str)
'_'.join([x.lower() for x in li])
geew
2013-08-07 15:45:59 +08:00
@qdvictory 谢谢 不错的方法 之前没想过正则

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/78295

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX