python 替换捕获组值
python replace capture group value
我正在尝试使用 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', 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
替换为所需的组
original_text = 'context PQ-4662-33-K64C-C-DDxxx-Sxxxx'
original_text=re.sub(r'(context\s.*\d[0-9]\-\w\w\-)(K)(.*)',r''+'M'+r'',original_text)
print(original_text) #'context PQ-4662-33-M64C-C-DDxxx-Sxxxx'
如果你只是想用M替换所有`K
re.sub('K','M',original_text)
如果您只想将 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
我正在尝试使用 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', 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
替换为所需的组
original_text = 'context PQ-4662-33-K64C-C-DDxxx-Sxxxx'
original_text=re.sub(r'(context\s.*\d[0-9]\-\w\w\-)(K)(.*)',r''+'M'+r'',original_text)
print(original_text) #'context PQ-4662-33-M64C-C-DDxxx-Sxxxx'
如果你只是想用M替换所有`K
re.sub('K','M',original_text)
如果您只想将 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