Python经典编程题:字符串替换

时间:2022-07-28
本文章向大家介绍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 < n and not flag:
        # 检测第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)