我正在尝试使用 python 代码将以下代码片段中的字符值 'K' 替换为 'M',但运气不佳。代码:import reoriginal_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-SxxxxKMKProcess finished with exit code 0我正在寻求的期望输出:context PQ-4662-33-M64C-C-DDxxx-Sxxxx
2 回答
慕沐林林
TA贡献2016条经验 获得超9个赞
替换为所需的组
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 替换所有的 `K
re.sub('K','M',original_text)
慕森卡
TA贡献1806条经验 获得超8个赞
如果您只想替换K
为M
,那么您可以简单地执行以下任一操作:
1) re.sub('K', 'M', original_text)
2) original_text.replace('K', 'M')
两者都会产生:
context PQ-4662-33-M64C-C-DDxxx-Sxxxx
如果您的要求更具体,并且输入字符串始终遵循规定的模式:
re.sub(r'(?<=context [A-Z]{2}-\d{4}-\d{2}-)[A-Z]', 'M', original_text)
再次产生:
context PQ-4662-33-M64C-C-DDxxx-Sxxxx
添加回答
举报
0/150
提交
取消