oracle替换指定字符串字符_Python经典编程题:字符串替换

函数原型strreplace(str, oldString, newString) 

例如: >>> pstr = "Hello World!"; >>> afterReplaceStr = strreplace(pstr, " World", " Tom"); 

那么afterReplaceStr的值为"Hello Tom!"

方法一:使用字符串替换
    def strreplace_v1(old_str, key, value):
    # 替换某个字符串的一个或某几个字符串
        new_str = old_str.replace(key, value)
        return new_str
方法二:使用正则替换
import re
def strreplace_v2(msg, key, value):
    ''' 替换某个字符串的一个或某几个字符串 '''
    m = re.compile(key)
    ret = m.sub(value, msg)
    return ret
方法三:自己写替换方法
def strreplace_v3(msg, key, value):
    ''' 替换某个字符串的一个或某几个字符串 '''
    n = len(key)

    # 使用python的str.index()
    # i = msg.index(key)

    # 使用手写的函数
    i = str_index(msg, key)

    j = i + n
    ret = msg[:i] + value + msg[j:]
    return ret


def str_index(msg, key):
    ''' 查找字符串key 在 字符串msg 中的位置
    手写str.index()函数
    '''
    i = j = 0
    n = len(msg)
    m = len(key)
    flag = False
    while i         # 检测第0位的字母
        if msg[i] != key[0]:
            i += 1
        else:
            # 相同,检测后续字母
            for k in range(1, m):
                if msg[i + k] != key[j + k]:
                    i += k + 1
                    break
            else:
                # 找到
                return i
    raise ValueError('substring not found')

pstr = "Hello World!"
afterReplaceStr = strreplace_v3(pstr, " World", " Tom")
print(afterReplaceStr)

e847d24257d03049ad028076200cf39d.png

好文章,我在看❤️

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值