[英]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.