正则 re.findall(r'x?','xy123'),x 重复 0 次是什么意思?
巴扎黑
巴扎黑 2016-11-09 16:47:07
0
1
986

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

巴扎黑
巴扎黑

모든 응답(1)
phpcn_u29

'xy123' 长度为 5 ,所以 re.findall 最多可以在 5 个位置尝试匹配。 
第一个位置是在字符串首,匹配到了 'x'。 
然后跳过匹配到的字符串,移到 'y' 前面,进行第二次匹配尝试,匹配到 ''。 
然后往前移动一个字符,即 'y' 和 '1' 中间,进行第三次匹配尝试,匹配到 ''。 
然后往前移动一个字符,即 '1' 和 '2' 中间,进行第四次匹配尝试,匹配到 ''。 
然后往前移动一个字符,即 '2' 和 '3' 中间,进行第五次匹配尝试,匹配到 ''。 
然后往前移动一个字符,即串尾,结束所有匹配尝试。 

任何文本都包含 ''。

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!