2024-04-20 14:32:52 发布
网友
我想替换正则表达式匹配字符串的第一部分。我正在使用 python中的re(regex)包:
import re string = 'H12-H121' sub_string = 'H12' re.sub(sub_string,"G12",string) >> G12-G121
预期产量:
>> G12-H121
为要替换的调用的出现次数添加1回复sub我的意思是:
import re string = 'H12-H121' sub_string = 'H12' re.sub(sub_string,"G12",string, 1) #<---- 1 added here
现在输出是'G12-H121',因为它只替换第一个匹配
'G12-H121'
你只需要一个str.replace()就可以做到这一点
str.replace()
full_string = 'H12-H121' sub_string = 'H12' output_string = full_string.replace(sub_string,"G12",1) print(output_string)
输出:
G12-H121
您应该告诉引擎您希望在开始时使用^锚点进行匹配和替换:
^
re.sub('^H12', 'G12', string)
或者如果您不确定-之后的字符串:
-
re.sub('^[^-]+', 'G12', string)
Live demo
如果只需要替换第一次出现的H12,请使用参数count:
H12
count
re.sub('H12', 'G12', string, count = 1)
^[^-]+细分:
^[^-]+
[^-]+
为要替换的调用的出现次数添加1回复sub我的意思是:
现在输出是
'G12-H121'
,因为它只替换第一个匹配你只需要一个
str.replace()
就可以做到这一点输出:
您应该告诉引擎您希望在开始时使用
^
锚点进行匹配和替换:或者如果您不确定
-
之后的字符串:Live demo
如果只需要替换第一次出现的
H12
,请使用参数count
:^[^-]+
细分:^
匹配输入字符串的开头[^-]+
匹配除-
之外的一个或多个字符相关问题 更多 >
编程相关推荐