前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python经典编程题:字符串替换

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

作者头像
吾非同
发布2020-10-23 10:53:33
4940
发布2020-10-23 10:53:33
举报
文章被收录于专栏:吾非同

函数原型strreplace(str, oldString, newString) 例如: >>> pstr = "Hello World!"; >>> afterReplaceStr = strreplace(pstr, " World", " Tom"); 那么afterReplaceStr的值为"Hello Tom!"

方法一:使用字符串替换
代码语言:javascript
复制
    def strreplace_v1(old_str, key, value):
    # 替换某个字符串的一个或某几个字符串
        new_str = old_str.replace(key, value)
        return new_str
方法二:使用正则替换
代码语言:javascript
复制
import re
def strreplace_v2(msg, key, value):
    ''' 替换某个字符串的一个或某几个字符串 '''
    m = re.compile(key)
    ret = m.sub(value, msg)
    return ret
方法三:自己写替换方法
代码语言:javascript
复制
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)
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-08-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 吾非同 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 方法一:使用字符串替换
  • 方法二:使用正则替换
  • 方法三:自己写替换方法
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档