python正则表达式findall的使用

在没有分组即没有()的情况下正常的findall使用

findall一般使用在将匹配正则表达式的所有内容全部输出,search()则是只输出匹配正则表达式的第一个内容,而且findall输出的是一个list,代码如下:

search:

import re
forTest = "Hello 12344566 world, i am Cao666,Hello 12312"
searchResult = re.search(r'H.*?\d+',forTest) #匹配H开头,后面是数字的部分
print(searchResult)
print(searchResult.group())

输出:
<re.Match object; span=(0, 14), match='Hello 12344566'>
Hello 12344566

findall:

import re
forTest = "Hello 12344566 world, i am Cao666,Hello 12312"
searchResult = re.findall(r'H.*?\d+',forTest) #匹配H开头,后面是数字的部分
print(searchResult)



输出:
['Hello 12344566', 'Hello 12312']

在有分组的情况下特殊的findall使用:

search:

import re
forTest = "Hello 12344566 world, i am Cao666,Hello 12312"
searchResult = re.search(r'H.*?(\d+)',forTest) #匹配H开头,后面是数字的部分
print(searchResult)
print(searchResult.group())


输出:
<re.Match object; span=(0, 14), match='Hello 12344566'>
Hello 12344566

findall:

import re
forTest = "Hello 12344566 world, i am Cao666,Hello 12312"
searchResult = re.findall(r'H.*?(\d+)',forTest) #匹配H开头,后面是数字的部分
print(searchResult)

输出:
['12344566', '12312']

总结:

一,在没有分组(即没有( ) )的情况下,findall就是和search的区别仅仅就是findall匹配全部,search匹配第一个,还有findall匹配之后输出的是一个list,search输出不是,search.group()得到的是一个string。
二,在有分组(即有())的情况下,findall和search的区别不仅在于数量,而且这个时候,findall会仅仅匹配分组内的内容,就是说只匹配括号里面的,这时候,findall得到的结果等于search.group(1),当然findall匹配到的结果不仅仅是search.group(1)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值