替换python中匹配字符串的一部分

2024-06-16 09:05:45 发布

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

我有以下匹配的字符串:

punctacros="Tasla"_TONTA  
punctacros="Tasla"_SONTA  
punctacros="Tasla"_JONTA  
punctacros="Tasla"_BONTA

我只想替换匹配字符串的一部分(下划线之前),其余部分在每个原始字符串中应该保持不变。在

结果应该如下所示:

^{pr2}$

Tags: 字符串pr2bontataslajontapunctacrossontatonta
3条回答
mystring.replace('punctacross="Tasla"', 'TROGA_')

其中mystring就是这四行的字符串。它将返回带有替换值的字符串。在

如果要替换第一个下划线之前的所有内容,请尝试以下操作:

#! /usr/bin/python3

data = ['punctacros="Tasla"_TONTA',
'punctacros="Tasla"_SONTA',  
'punctacros="Tasla"_JONTA',  
'punctacros="Tasla"_BONTA',
'somethingelse!="Tucku"_CONTA']

for s in data:
    print('TROGA' + s[s.find('_'):])

编辑:

这应该是有效的:

from re import sub
with open("/path/to/file") as myfile:
    lines = []
    for line in myfile:
        line = sub('punctacros="Tasla"(_.*)', r'TROGA\1', line)
        lines.append(line)
with open("/path/to/file", "w") as myfile:
    myfile.writelines(lines)

结果:

^{pr2}$

但是请注意,如果您的文件与给定的示例完全相同,您可以将re.sub行替换为:

line = "TROGA_"+line.split("_", 1)[1]

完全不需要正则表达式。我没有这么做是因为你似乎想要一个正则表达式的解决方案。在

相关问题 更多 >