扩展python3的replace()方法

2022-10-11 21:20:12 124 0
魁首哥

扩展后的方法说明

扩展后的replace()方法的功能:去掉字符串中的指定字符串,并返回去掉后的子字符串,替换时可设置是否区分大小写

传参说明

myString:原字符串
oldSubStr:要替换的子字符串
newSubStr:替换后的子字符串
count:要替换的次数,默认为-1(负数-全部替换,0-不替换,1-替换第1个,n-替换前n个)
caseSensitive:1-区分大小写,其他-不区分大小写

扩展python3的replace()方法

源码

 def myReplace(myString, oldSubStr, newSubStr, count=-1, caseSensitive='1'):
    # 处理传参,不合法的时候强制转换为需要的类型
    oldSubStr = str(oldSubStr)
    newSubStr = str(newSubStr)
    myString = str(myString)
    if not isinstance(count, int):
        count = -1

    # oldSubStr为空时不做替换,直接返回原字符串
    if oldSubStr == '':
        return myString

    # 区分大小写时,直接调用replace()方法处理
    if str(caseSensitive) == '1':
        myString = myString.replace(oldSubStr, newSubStr, count)
        return myString

    # 不区分大小写时,oldSubStr在myString中不存在
    # countSubString()方法见另外一篇文章:
    tem = countSubString(oldSubStr, myString, '1')
    if not tem['flag']:
        return myString

    # 不区分大小写时,oldSubStr在myString中存在
    oldSubStr = oldSubStr.lower()
    if count == 0:
        return myString
    elif count < 0:
        for i in tem['index_start']:
            myString = oldSubStr.join(myString.split(myString[i:i + len(oldSubStr)]))
    else:
        for i in tem['index_start'][:count]:
            myString = oldSubStr.join(myString.split(myString[i:i + len(oldSubStr)]))
    myString = myString.replace(oldSubStr, newSubStr, count)
    return myString  

测试结果

 # 引用
if __name__ == '__main__':
    print('结果1:', myReplace('China will be a STRONG country!', 'will', 'must',-1,'0'))
    print('结果2:', myReplace('China will be a STRONG country!', 'will', 'must',0,'0'))
    print('结果3:', myReplace('China will be a STRONG country!', 'strong', 'stronger',-1,'1'))
    print('结果4:', myReplace('China will be a STRONG country!', 'strong', 'stronger',-1,'0'))
    print('结果5:', myReplace('China will be a STRONG country!', 't', '-t-',1,'0'))
    print('结果6:', myReplace('China will be a STRONG country!', 't', '-t-',2,'0'))
    print('结果7:', myReplace('China will be a STRONG country!', '!', '',-1,'0'))
    print('结果8:', myReplace('China will be a STRONG country!', '', '',-1,'0'))
    print('结果9:', myReplace('China will be a STRONG country!', 'abc', '',-1,'0'))
    print('结果10:', myReplace('China will be a STRONG country!', ' ', '',-1,'0'))
    print('结果11:', myReplace('China will be a STRONG country!', ' ', '',2,'0'))
    print('结果12:', myReplace('China will be a STRONG country!', ' ', '',10,'0'))

# 结果
结果1: China must be a STRONG country!
结果2: China will be a STRONG country!
结果3: China will be a STRONG country!
结果4: China will be a stronger country!
结果5: China will be a S-t-RONG country!
结果6: China will be a S-t-RONG coun-t-ry!
结果7: China will be a STRONG country
结果8: China will be a STRONG country!
结果9: China will be a STRONG country!
结果10: ChinawillbeaSTRONGcountry!
结果11: Chinawillbe a STRONG country!
结果12: ChinawillbeaSTRONGcountry!  

收藏
分享
海报
0 条评论
124
上一篇:PHP为什么要对SESSION进行上锁的操作,你知道原因吗? 下一篇:PHP代码审计之SQL注入-第二回

本站已关闭游客评论,请登录或者注册后再评论吧~

忘记密码?

图形验证码