除了第一个和最后一个字母之外,如何替换字符串中每个字母的出现?

时间:2017-08-31 16:03:30

标签: python string input replace printing

我正在使用.replace方法用小写的h替换小写的h,但是我不想替换h的第一次和最后一次出现..这是我到目前为止所做的:

string = input()
print(string.replace('h', 'H', ?))

我不确定将什么作为.replace函数中的最后一个参数。 提前谢谢。

4 个答案:

答案 0 :(得分:1)

试试这个:

string = input()
substring = string[string.find('h') + 1:]
print(string[:string.find('h') + 1] + substring.replace('h', 'H', substring.count('h') - 1))

答案 1 :(得分:1)

您可以找到h的第一个和最后一个位置,并在字符串

的拼接中替换
string = input()
lindex = string.find('h')
rindex = string.rfind('h')
buf_string = string[lindex + 1:rindex]
buf_string.replace('h', 'H')
string = string[:lindex + 1] + buf_string + string[rindex:]

答案 2 :(得分:0)

试试这个:

st=input()
i=st.index('h')
j=len(st)-1-st[::-1].index('h')
st=st[:i+1]+st[i+1:j].replace("h","H")+st[j:]
print (st)

答案 3 :(得分:0)

您可以使用pattern.sub进行回调,当h位于2 H之间时,h替换所有mystring = 'I say hello hello hello hello hello' pat = re.compile(r'(?<=h)(.+)(?=h)') res = pat.sub(lambda m: m.group(1).replace(r'h', 'H') , mystring) print res

I say hello Hello Hello Hello hello

<强>输出:

{{1}}