関数プロトタイプstrreplace(str、oldString、newString)
例:>>> pstr = "Hello World!"; >>> afterReplaceStr = strreplace(pstr、 "World"、 "Tom");
その場合、afterReplaceStrの値は「HelloTom!」です。
def strreplace_v1(old_str, key, value):
# 文字列の1つまたは複数の文字列を置き換えます
new_str = old_str.replace(key, value)return new_str
import re
def strreplace_v2(msg, key, value):'''文字列の1つまたは複数の文字列を置き換えます'''
m = re.compile(key)
ret = m.sub(value, msg)return ret
def strreplace_v3(msg, key, value):'''文字列の1つまたは複数の文字列を置き換えます'''
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):'''文字列メッセージで文字列キーの位置を見つけます
手書き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 +=1else:
# 同じ、後続の文字を検出します
for k inrange(1, m):if msg[i + k]!= key[j + k]:
i += k +1breakelse:
# 現れる
return i
raise ValueError('substring not found')
pstr ="Hello World!"
afterReplaceStr =strreplace_v3(pstr," World"," Tom")print(afterReplaceStr)
Recommended Posts