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