我的python解释器(版本3.2.3)中的以下表达式:
re.compile('([0-9])\1')
无法匹配“11”或“77”等字符串。我多次被告知\number
会引用number
括号所围绕的表达式,为什么这个正则表达式不会匹配?
答案 0 :(得分:0)
如果要匹配整数,可以使用:
re.compile('[0-9]*')
答案 1 :(得分:0)
你应该转义反斜杠(\
)
re.compile('([0-9])\\1')
或使用原始字符串文字:
re.compile(r'([0-9])\1')
否则,\1
与字符\x01
匹配,与之前的组号1不匹配。
>>> re.search('([0-9])\1', '55')
>>> re.search('([0-9])\1', '5\x01') # '5\x01' == '5\1'
<_sre.SRE_Match object at 0x7f3a86ef8120>