如果我要插入" 0"那么语法是什么?在第一组参考后?
import re
re.sub("(..)(..)", "\\1x\\2", "toto")
toxto
re.sub("(..)(..)", "\\10\\2", "toto")
sre_constants.error: invalid group reference
错误,因为\ 10被解释为第10个参考组(这是为什么在ed()中,组引用在[1-9]区间内)。
在上面的例子中,如何获得" to0to" ?
答案 0 :(得分:9)
您可以使用基于\g
的群组替换:
>>> import re
>>> re.sub("(..)(..)", r"\g<1>0\g<2>", "toto")
'to0to'
来自docs:
\g<number>
使用相应的组号;因此\g<2>
等同于\2
,但在\g<2>0
等替换中不含糊。\20
将被解释为对组20
的引用,而不是对引用的引用 将2
分组后跟文字字符'0'
。