正则表达式+和*的区别
1620
正则表达式+和*的区别:*:匹配0次或多次,即任意次。+:匹配1次或多次*可以匹配多次,所以返回值是连着的子表达,也就是一个字符串o。它匹配不到子表达式也会返回空值。而+匹配至少一次,匹配不成功的话也不会有返回值。
*:匹配0次或多次,即任意次
+:匹配1次或多次
s = ‘fooooo’
re.findall(‘o?’,s)
[”, ‘o’, ‘o’, ‘o’, ‘o’, ‘o’, ”]
re.findall(‘o*’,s)
[”, ‘ooooo’, ”]
re.findall(‘o+’,s)
[‘ooooo’]
s = ‘faoooghooo’
re.findall(‘o?’,s)
[”, ”, ‘o’, ‘o’, ‘o’, ”, ”, ‘o’, ‘o’, ‘o’, ”]
re.findall(‘o*’,s)
[”, ”, ‘ooo’, ”, ”, ‘ooo’, ”]
re.findall(‘o+’,s)
[‘ooo’, ‘ooo’]
*可以匹配多次,所以返回值是连着的子表达,也就是一个字符串o。它匹配不到子表达式也会返回空值。
而+匹配至少一次,匹配不成功的话也不会有返回值。