+ -
当前位置:首页 → 问答吧 → python re模块,这个描述咋理解

python re模块,这个描述咋理解

时间:2011-08-29

来源:互联网

>>> import re
>>> a = '12a34a56'
>>> re.findall('12(?P<xxx>.).*(?P=xxx)56',s)
['a']
>>>


为什么是这个结果,看着挺头疼的,那位大神给详解一下

作者: CCDDR   发布时间: 2011-08-29

和\1\2\3差不多。说白了就是(?P<xxx>.)要和(?P=xxx)相等,也就是都等于a。举个更简单的例子:
Python code
>>> re.findall(r'(?P<x>\d)(?P=x)', '33')
['3']
>>> re.findall(r'(?P<x>\d)(?P=x)', '34')
[]
>>> re.findall(r'(\d)\1', '33')
['3']
>>> re.findall(r'(\d)\1', '34')
[]

作者: iambic   发布时间: 2011-08-29