python實現批量替換字串中的數字

2021-10-04 16:30:28 字數 2038 閱讀 8872

如字串:「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...