Python正则表达式无法识别\ number

时间:2014-03-06 04:04:32

标签: python regex

我的python解释器(版本3.2.3)中的以下表达式:

re.compile('([0-9])\1')

无法匹配“11”或“77”等字符串。我多次被告知\number会引用number括号所围绕的表达式,为什么这个正则表达式不会匹配?

2 个答案:

答案 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>