正则表达式+和*的区别

Z, ZLW 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。它匹配不到子表达式也会返回空值。
而+匹配至少一次,匹配不成功的话也不会有返回值。

回复

我来回复
  • 暂无回复内容

注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部