python替换捕获组值

我正在尝试使用 python 代码将以下代码片段中的字符值 'K' 替换为 'M',但运气不佳。


代码:


import re


original_text = 'context PQ-4662-33-K64C-C-DDxxx-Sxxxx'

regex = re.compile(r'context\s.*\d[0-9]\-\w\w\-(K).*')

result = re.match(regex, original_text)

replace_attempt = regex.sub(r'M\1', original_text)


print(result.group(0))

print(result.group(1))

print(replace_attempt)

输出:


context PQ-4662-33-K64C-C-DDxxx-Sxxxx

K

MK


Process finished with exit code 0

我正在寻求的期望输出:


context PQ-4662-33-M64C-C-DDxxx-Sxxxx


慕运维8079593
浏览 248回答 2
2回答

慕沐林林

替换为所需的组original_text = 'context PQ-4662-33-K64C-C-DDxxx-Sxxxx'original_text=re.sub(r'(context\s.*\d[0-9]\-\w\w\-)(K)(.*)',r'\1'+'M'+r'\3',original_text)print(original_text) #'context PQ-4662-33-M64C-C-DDxxx-Sxxxx'如果你只是想用 M 替换所有的 `Kre.sub('K','M',original_text)

慕森卡

如果您只想替换K为M,那么您可以简单地执行以下任一操作:1)&nbsp;re.sub('K', 'M', original_text)2)&nbsp;original_text.replace('K', 'M')两者都会产生:context&nbsp;PQ-4662-33-M64C-C-DDxxx-Sxxxx如果您的要求更具体,并且输入字符串始终遵循规定的模式:re.sub(r'(?<=context&nbsp;[A-Z]{2}-\d{4}-\d{2}-)[A-Z]',&nbsp;'M',&nbsp;original_text)再次产生:context&nbsp;PQ-4662-33-M64C-C-DDxxx-Sxxxx
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python