Har*_*ier 10 python regex
我正在使用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?
Max*_*ant 9
如本页所述,在Python中\0解释为空字符(\x00)和组编号从1开始(根据re模块文档):
\0
\x00
re
\数 匹配相同编号的组的内容.组从1开始编号.例如,(.+) \1匹配'the'或'55 55',但不匹配'thethe'(注意组后面的空格).此特殊序列只能用于匹配前99个组中的一个.如果数字的第一个数字是0,或者数字是3个八进制数字长,则不会将其解释为组匹配,而是解释为具有八进制数值的字符.在字符类的'['和']'内,所有数字转义都被视为字符.
\数
匹配相同编号的组的内容.组从1开始编号.例如,(.+) \1匹配'the'或'55 55',但不匹配'thethe'(注意组后面的空格).此特殊序列只能用于匹配前99个组中的一个.如果数字的第一个数字是0,或者数字是3个八进制数字长,则不会将其解释为组匹配,而是解释为具有八进制数值的字符.在字符类的'['和']'内,所有数字转义都被视为字符.
(.+) \1
此外,根据之前链接的页面,它不是一个bug而是一个期望的行为(这很明显,因为它已被记录).
归档时间:
11 年,11 月 前
查看次数:
522 次
最近记录:
11 年,5 月 前