如字串:「a2aa2bbb3ccc4dddd」,現在希望將串裡的2,2,3,4替換成11,22,33,44
那麼需要傳入兩個引數;
第乙個引數是目標字串——「a2aa2bbb3ccc4dddd」;
第二個引數是替換後的值——[11,22,33,44]
完整**如下:
import re
defupdatepath
(path=
'', nowpath=
):kv =
nums =
beforedatas = re.findall(
'\d'
, path)
for num in beforedatas:
indexv =
times = path.count(num)
if(times >1)
:if(num not
in nums)
: indexs = re.finditer(num, path)
for index in indexs:
iv =
i = index.span()[
0]else
: index = path.find(num)
# 根據數字位置排序
indexsort =
resultindex =
for vi in kv:1]
) indexsort.sort(
)for i in indexsort:
for v in kv:
if(i == v[1]
):temp =
for i in
range
(len
(nowpath)):
if(i ==0)
: index0 =
int(resultindex[0]
[1])
p = path[
:index0]
elif
(i ==
len(nowpath)-1
):indexstart =
int(resultindex[i -1]
[1])
+len
(resultindex[i -1]
[0])
indexend =
int(resultindex[i][1
])p = path[indexstart:indexend]
indexlast =
int(resultindex[i][1
])p = path[indexlast +
len(resultindex[i][0
]):]
else
: indexstart =
int(resultindex[i -1]
[1])
+len
(resultindex[i -1]
[0])
indexend =
int(resultindex[i][1
])p = path[indexstart:indexend]
for i in
range
(len
(nowpath)):
temp[i +1]
=str
(nowpath[i]
)+ temp[i +1]
result =
''.join(temp)
return result
if __name__ ==
'__main__'
: s=updatepath(
'aaa2bbb3ccc4dddd',[
222,
333,
444]
)print
(s)
執行結果:
linux sed 批量替換字串
一月 21,2014 no comments linux下批量替換多個檔案中的字串的簡單方法。用sed命令可以批量替換多個檔案中的字串。命令如下 sed i s 原字串 新字串 g grep 原字串 rl 所在目錄 例如 我要把 charset gb2312 替換為 charset utf 8,執行...
linux sed 批量替換字串
inux下批量替換多個檔案中的字串的簡單方法。用sed命令可以批量替換多個檔案中的字串。命令如下 sed i s 原字串 新字串 g grep 原字串 rl 所在目錄 解釋一下 i 表示inplace edit,就地修改檔案 r 表示搜尋子目錄 l 表示輸出匹配的檔名 這個命令組合很強大,要注意備份...
linux sed 批量替換字串
linux下批量替換多個檔案中的字串的簡單方法。用sed命令可以批量替換多個檔案中的字串。命令如下 sed i s 原字串 新字串 g grep 原字串 rl 所在目錄 例如 我要把 charset gb2312 替換為 charset utf 8,執行命令 sed i s charset gb23...