繁体   English   中英

匹配字符串的python regex子部分

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM