Skip to main content
 首页 » 编程设计

python之查找并替换大写字符

2025年05月04日16lovecherry

我想查找并替换字符串中的大写字符(如 _upperchar)。

例如:输入:HeLLo 大写字母

输出:_He_L_Lo _Capital _Letters

我试过:

print "saran" 
value = "HeLLo Capital Letters" 
for word in value: 
        print word 
        if word.isupper(): 
                char = "_" 
                value = value.replace(word,char + word) 
 
print value 

我得到的输出是,

_He___L___Lo _Capital ___Letters 

有人请帮我减少多余的下划线。

请您参考如下方法:

看看re.sub

>>> import re 
>>> re.sub(r'([A-Z])', r'_\1', value) 
'_He_L_Lo _Capital _Letters' 

您的示例中的问题不是您在迭代字符串时修改它。 Python 将在 for 循环的开始处创建 iter(value),并且在此之后更改为 value 不会影响循环,因为字符串是不可变的。问题是 value.replace 将替换字符串中所有出现的地方,例如有 3 个大写 L,每个 L 将得到 3 个下划线 (value.replace('L', ' _L') 发生了 3 次)。