繁体   English   中英

替换字符串中的单个字符

[英]Replacing single character in string

我必须创建一个代码来替换字符串中的一个字符/字母。

我得到的例子是这样的:

string_substituting_char('abcdeeaa', 'c') 

应该返回:

'ab$deeaa'

而且我知道要使用哪个代码,所以我使用了此代码,但是我只知道该代码替换字符串中的所有字母:

def string_substituting_char (st, ch):
    for ch in st:
        st = st.replace(ch, '$')
    return st

我拥有和使用的代码(它将替换所有字符)

我想知道应该在代码中添加什么,以便它仅更改字符串中的一个特定字符。

只需将调用结果返回到str.replace

def string_substituting_char(st, ch):
    return st.replace(ch, '$')

演示:

>>> def string_substituting_char(st, ch):
...     return st.replace(ch, '$')
...
>>> string_substituting_char('abcdeeaa', 'c')
'ab$deeaa'
>>>

或者,如果您只想替换字符的第一次出现,则可以将1传递给count参数:

def string_substituting_char(st, ch):
    return st.replace(ch, '$', 1)

演示:

>>> def string_substituting_char(st, ch):
...     return st.replace(ch, '$', 1)
...
>>> string_substituting_char('abcabc', 'c')
'ab$abc'
>>>

如果要替换给定字符的每个实例,请使用以下命令:

>>> def string_substituting_char (st, ch):
...     return st.replace(ch, '$')
... 
>>> string_substituting_char('abccdefccsfdds', 'c')
'ab$$def$$sfdds'

使用正则表达式

import re

def string_sub (str, ch):
    return "$".join(re.findall("[^" + ch + "]+", str))

演示:

>>> string_sub("ello this is aea sa s as", "e")
'$llo this is a$a sa s as'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM