[英]Python regex sub part of matched string
我想替换正则表达式匹配字符串的第一部分。 我为此在python中使用re (regex)包:
import re
string = 'H12-H121'
sub_string = 'H12'
re.sub(sub_string,"G12",string)
>> G12-G121
预期产量:
>> G12-H121
您应该告诉引擎,您想在开始使用^
锚进行匹配和替换:
re.sub('^H12', 'G12', string)
还是不确定-
之后的字符串:
re.sub('^[^-]+', 'G12', string)
如果只需要替换第一次出现的H12
使用参数count
:
re.sub('H12', 'G12', string, count = 1)
^[^-]+
细分:
^
输入字符串的匹配开始 [^-]+
匹配一个或多个字符,但-
为要替换的出现次数添加1,以替换对re.sub的调用。 我的意思是:
import re
string = 'H12-H121'
sub_string = 'H12'
re.sub(sub_string,"G12",string, 1) #<---- 1 added here
现在输出为'G12-H121'
因为它仅替换了第一个匹配项
你可以只用一个str.replace()
full_string = 'H12-H121'
sub_string = 'H12'
output_string = full_string.replace(sub_string,"G12",1)
print(output_string)
输出:
G12-H121
只需在子字符串re模式中添加^
import re
s1 = 'H12-H121'
pat = r'^H12'
print(re.sub(pat,"G12",s1))
输出G12-H121
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.