python - 某个字符后的小写字母?

标签 python string

我喜欢 string.capwords() 的一些行为方式,以及 .title() 的一些行为方式,但不是一个。

我需要缩写大写,.title() 可以,但 string.capwords()string.capwords() 不需要单引号后的字母不会大写,所以我需要两者的结合。我想使用 .title(), 然后我需要在撇号后面没有空格的情况下将单个字母小写。

例如,这是用户的输入:

string="it's e.t.!"

我想把它转换成:

>>> "It's E.T.!"

.title() 会将“s”大写,string.capwords() 不会将“e.t.”大写。

最佳答案

您可以使用正则表达式替换(参见 re.sub ):

>>> s = "it's e.t.!"
>>> import re
>>> re.sub(r"\b(?<!')[a-z]", lambda m: m.group().upper(), s)
"It's E.T.!"

[a-z]将匹配小写字母。但不是在 ' 之后((?<!') - 负面回顾断言)。字母应出现在单词边界之后;所以t将不会匹配。

re.sub 的第二个参数, lambda将返回替换字符串。 (字母的上部版本),它将用于替换。

关于python - 某个字符后的小写字母?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36214553/

相关文章:

c - 指针与 c 中的整数二维数组和字符串不同

python - Pandas 将 DataFrame 求和到一个更大的 DataFrame 中,该 DataFrame 已经包含具有相同列名的相同索引

php - 编程中如何调用 "special characters"的字符串自定义处理?

java - 如何编辑我的比较方法

python - 如何在 PyDev 中禁用模板调试

C# 字符串操作

ruby - 我怎样才能像 shell 那样拆分字符串来填充 ARGV?

python - 动态创建字典并自动分配函数评估中的属性

python - 如何使用 Python 从 RESTful 服务获取 JSON 数据?

python - 这条 Python 字符串切片语句中的两个冒号的用途是什么?