Python:re模块替换字典中的值

2024-05-23 23:25:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我今天开始研究Python中可用的方便的re模块,并希望能得到有关re.sub的帮助

我的文件:

avid "Av.Id
fated "fEIt.Id
leaded "lEd.Id
wicked "wIk.Id

我想sub if match "(v|t|d|k)\.Id",然后改为"\.(v|t|d|k)Id",这样输出看起来像:

avid "A.vId
fated "fEI.tId
leaded "lE.dId
wicked "wI.kId

我可以将我的字符串与re.search很好地匹配,但是当字母每次都不同(v、t、d、k等)时,我仍然无法确定如何进行实际替换。谢谢你的帮助。你知道吗


Tags: 模块文件reidledifmatchvid
1条回答
网友
1楼 · 发布于 2024-05-23 23:25:21

使用^{}并使用\g<1>语法引用保存的组(v|t|d|k)

import re

PATTERN = re.compile('(v|t|d|k)\.Id')
with open('input.txt') as f:
    for line in f:
        print PATTERN.sub(".\g<1>Id", line)

它打印:

avid "A.vId
fated "fEI.tId
leaded "lE.dId
wicked "wI.kId

相关问题 更多 >