在第一次出现后如何用符号替换所有字符而不影响大小写?

时间:2019-09-12 23:58:32

标签: python string character

我不知道如何在不影响原始大小写的情况下替换所有出现的第一个字符,不包括第一个字符。例如,我想将她是海上最好的人变成她在$ ea上的赌注。进行此操作最有效的方法是什么。

我尝试使用.title()失败,并且收到输出错误且字符大写的错误信息。

def change(s):
    news=s.lower()
    firstchar=news[0]
    modifieds=news[1:].replace(firstchar,"$")
    final=(firstchar+modifieds)
    print(final.title())

change("She's The Best On The Sea")

她在$ Ea上的$ Be

2 个答案:

答案 0 :(得分:2)

re.subre.IGNORECASE一起使用:

import re

s = "She's The Best On The Sea"
s[0] + re.sub('s', '$', s[1:], flags=re.IGNORECASE)

输出:

"She'$ The Be$t On The $ea"

答案 1 :(得分:0)

以一种可读的方式:

text = "She's The Best On The Sea"

new_text = ""
string_to_check = "s"
replacement = "$"

for i in range(len(text)):
    if i != 0 and text[i].lower() == string_to_check:
        new_text += replacement
    else:
        new_text += text[i]

print(new_text)

输出:

She'$ The Be$t On The $ea