如何使用python中的re.sub替换部分字符串

时间:2016-02-01 13:21:31

标签: python expression

我有:

desVar ("vrgt1" "0")

所以我用过:

re.sub(r'"vrgt0".+"(.+)"', '"a"',line)

我得到了:

desVar( "a" )

但我想要的是:

desVar( "vrgt0" "a")

是否所有方法仅使用()

替换匹配的部分内容

1 个答案:

答案 0 :(得分:0)

如果您有一个固定的字符串,为什么不在Afterwads中添加它?

re.sub(r'"vrgt0".+".+"', '"vrgt0" "a"',line)

您可以使用命名组:

re.sub(r'(?P<name>"vrgt0".+)"(.+)"','\g<name>"a"', line)

示例:

print re.sub(r'(?P<name>"vrgt\d*".+)"(.+)"','\g<name>"a"', '"vrgt1" asd "0"')
> "vrgt1" asd "a"

print re.sub(r'(?P<name>"vrgt\d*".+)"(.+)"','\g<name>"a"', '"vrgt151"   "1231"')
>"vrgt151"   "a"

print re.sub(r'(?P<name>"vrgt\d*".+)"(.+)"','\g<name>"a"', '"vrgt"   "0-abc"')
> "vrgt"   "a"

print re.sub(r'(?P<name>"vrgt\d*".+)"(.+)"','\g<name>"a"', '"vrgt918" -- "0"')
> "vrgt918" -- "a"