原字符串str:“hello word china”被替换字符串oldstr:“world”新替换的字符串newstr:“hi”替换结果:hello hi china
实现:
第一种方法:直接调用replace() defstrreplace(str,oldstr,newstr): returnstr.replace(oldstr,newstr)
第二种方法:利用re模块正则 defstrreplace(str,oldstr,newstr): #先编译正则 m=re.compile(oldstr) ##替换字符串中的匹配项 ret=m.sub(newstr,str) returnret
第三种方法:实现替换函数 #找到替换字符的开始位置 defgetindex(str,key): n1=len(str) n2=len(key) i=0 j=0 whilei<n1: ifstr[i]!=key[j]: i=i+1 else: #index为开始位置 index=i whilej<n2: ifstr[i]==key[j]: i+=1 j+=1 else: #如果不相等继续找,替换字符串的下标重新开始,置为0 j=0 break returnindex return-1 defstrreplace(str,oldstr,newstr): index=getindex(str,oldstr) #print(index) step=index+len(oldstr) returnstr[:index]+newstr+str[step:]
替换结果
str=strreplace('helloworldchina','world','hi') 结果:hellohichina