python regex:.sub中的.format(string)with group

时间:2014-08-22 16:09:13

标签: python regex python-2.7

在python 2.7中,使用模块re

我有这个字符串

cat description:
 cat age: 10
 cat size: 20
 other properties
end cat description:

我试着

cat description:
 cat age: 30
 cat size: 40
 other properties
end cat description:

为此我试试

pattern = re.compile(
    (
        r"(cat description.*cat age: )\d+"
        "(.*cat size: )\d+"
        "(.*end cat description:)"
    ),
    re.MULTILINE
)
age = '30'
size = '40'
return pattern.sub(
    r"\1{}\2{}\3".format(age, size),
    cat_string_description
)

但是,我得到

“错误:无效的群组参考”

,如果我尝试

return pattern.sub(
    r"\1\2\3",
    cat_string_description
)

我得到了

cat description:
 cat age: 
 cat size: 
 other properties
end cat description:

为什么我得到error: invalid group reference

1 个答案:

答案 0 :(得分:0)

我用

解决了
return pattern.sub(
    r"\g<1>{}\g<2>{}\g<3>".format('30', '40'),
    cat_string_description
)