正则表达式在Python中的应用

findall

findall是寻找所有能匹配到的字符,并以列表的方式返回

1.找到单个字符

import re
text = '身高:160,体重:90,年龄:20‘
print(re.findall(r'\d',text))
运行结果:
['1','6','0','9','0','2','0']

2.找到多个字符

import re
text = '身高:160,体重:90,年龄:20‘
print(re.findall(r'\d+',text))
运行结果:
['160','90','20']#可连续匹配

search

搜索功能,只返回match对象

import re
text = 'abc,ABC,aBC‘
print(re.search(r'abc+',text))

如果想从这个match对象中取出我们想要的东西,就需要调用group();如果想从这个match对象中取出匹配结果的位置,就需要调用span()获得。

a = re.search(r'abc+',text)
print(a.group()) #print结果是abc
print(a.span()) #返回左闭右开的区间,(0,3)

match

也是与search一样的搜索功能,但是match只会从字符串开头匹配,如果从起始位置没有匹配成功的话,match()就返回None。

1. 从头开始匹配到了,返回一个match对象,与search结果一样

import re
text = 'abc,ABC,aBC‘
print(re.match(r'abc+',text))

2. 从头没有匹配到,返回None

import re
text = 'Abc,abc,ABC,aBC‘
print(re.match(r'abc+',text))

3. 通过()提取内容放在数组里 

import re
text = 'abc,ABC,aBC‘
a = re.match(r'a(.)c,A(.)C',text)
print(a.group())    #输出匹配的字符
print(a.groups())   #提取()中的内容,作为一个元组字符装在元组中:('b','B')
print(a.group(0))  #匹配到的完整的内容:abc,ABC
print(b.group(1))  #b
print(b.group(2))  #B
  • group(0)/group():获取匹配到的完整的字符串
  • group(1):获取括号括起来的第一个值
  • group(2):获取括号括起来的第二个值
  • groups():由所有括号括起来的值组成的元祖,相当于group(1,2)
  • 18
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值