正则 re.findall(r'x?','xy123'),x 重复 0 次是什么意思?
巴扎黑
巴扎黑 2016-11-07 14:41:54
0
1
1169

>>> re.findall(r'xy','xy123') #从源文本 xy123 中找 xy 刚好找到一个。 
['xy'] 
>>> re.findall(r'x','xy123') #从源文本 xy123 中找 x 刚好找到一个。 
['x'] 
>>> re.findall(r'x?','xy123') 
['x', '', '', '', '', ''] 

最后这个实在无法理解, 
从中找 x 重复 0 次或者 1 次,如果 x 重复 1 次,得到 x, 
关键是重复 0 次怎么理解?输出的结果里有 5 个表示空东西的东西,但是源文本 xy123 中没有它啊?!

巴扎黑
巴扎黑

reply all(1)
phpcn_u29

不要理解为"重复",理解为"匹配"。
匹配零次,就是匹配一个空集合,显然,任何"东西"都不属于一个空集合。所以 x?,就是匹配字母 x 一次,显然这是跟单独一个 x 是一样的效果,这是因为问号后面没别的条件了

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template