如何替换字符串中的字符?

how can i replace character in a string?

嗨,我正在尝试模拟用户可能输入的一个词,即 hello,所以基本上我将它打印到终端 _ _ _ _ _ 我想用“_”替换“_” l" 并匹配它在字符串中的位置,这是我的代码

import re
str1="hello"
lettercheck="l"
a=re.search(lettercheck,str1)
span=(a.span())
print(span)
print(str1[span[0])
count=0
ab="_"
for char in str1:
    print(ab,end=" ")
    if lettercheck==char
    count +=1
    replacechar=str1.replace(ab,str1[span[0]])
    print(replacechar)

打印出来 _ _ _ 你好 _ 你好 _ 谁能解释我哪里出错了,我该怎么做才能解决?请注意,计数仅用于计算字母重复出现的次数,我稍后将在我的代码中处理这只是一个示例,用于尝试了解正在发生的事情

所有的搜索和替换都可以简化。这里不需要正则表达式库:

str1 = 'hello'
lettercheck = "l"

positions = [pos for pos, char in enumerate(str1) if char == lettercheck]

for i in range(len(str1)):
    if i in positions:
        print(lettercheck, end='')
    else:
        print('_', end='')

returns:

__ll_

也许这可以帮助:

import re
str1 = 'hello'
specific_char = 'l'
print(re.sub(r'[^'+specific_char+']', '_', str1))

这会将特定字符(例如 l)以外的所有内容替换为下划线“_”。

这是将指定字符以外的每个字符替换为“_”的更简单、更有效的方法。

str1 = 'hello'
lettercheck = "l"
result = ""
for i in range(len(str1)):
    if str1[i] != lettercheck:
        result += '_'
    else:
        result += lettercheck
print(result)