[英]Why \g<0> behaves differently than \0 in re.sub?
我正在使用Python 3.3
re.sub("(.)(.)",r"\2\1\g<0>","ab") returns baab
但
re.sub("(.)(.)",r"\2\1\0","ab") returns ba
这是sub方法中的错误还是由于某种原因sub方法无法识别\\ 0?
如本页所示 , \\0
被解释为空字符( \\x00
),组编号从Python开始为1(根据re
模块文档):
\\数
匹配相同编号的组的内容。 组从1开始编号 。 例如,
(.+) \\1
匹配'the'或'55 55',但不匹配'thethe'(注意组后面的空格)。 此特殊序列只能用于匹配前99个组中的一个。 如果数字的第一个数字是0 ,或者数字是3个八进制数字长, 则不会将其解释为组匹配 ,而是解释为具有八进制数值的字符。 在字符类的'['和']'内,所有数字转义都被视为字符。
此外,根据之前链接的页面,它不是一个bug而是一个期望的行为(这很明显,因为它已被记录)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.