찾다

 >  Q&A  >  본문

正则 re.findall(r'x?','xy123'),x 重复 0 次是什么意思?

>>> 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 中没有它啊?!

巴扎黑巴扎黑2941일 전1170

모든 응답(1)나는 대답할 것이다

  • 面对疾风吧

    面对疾风吧2016-11-07 14:42:35

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

    회신하다
    0
  • 취소회신하다