正则 和 re模块

一、正则:
正则 是一种 处理文字 的规则,让我们提取有用信息
1、字符组(简写模式需从小到大)
表示数字的字符组:[178034],[0123456789],[0-9],[2-8]
表示字母的字符组:[abcd],[a-z],[A-Z]
表示匹配任意字符 : [\w\W][\d\D][\S\s]
2、正则匹配:字符 量词 非贪婪标志
字符:字符、字符组、元字符  表示一个字符位置上可以出现的内容

3、


  [^...]        匹配除了字符组中字符的所有字符



二、模块:
模块是我们使用Python去操作一些问题的工具。
import re

①# 返回所有满足匹配条件的结果,放在列表里

ret = re.findall('a', 'eva7 eg yuan')  
   print(ret) #结果 : ['a', 'a']

search从左到右依次找,找到一个就回来,需要使用group()获取返回值
如果re.search找不到,就返回None。使用group会报错

ret = re.search('a', 'eva egon yuan')  # a 啥意思啊,就返回个a,都不知道是哪里的a
if ret:
    print(ret.group())

 # 不是从头开始匹配,是匹配第一个!!!!!!!!!!!!!
   match从头开始匹配,匹配上了需要使用group来获取返回值
  匹配不上返回None,使用group会报错

ret = re.match('a', 'bva egon yuan')
   print(ret.group())    

ret = re.split('[ac]', 'abcd')  # 先按'a'分割得到''和'bcd',在对''和'bcd'分别按'b'分割
    print(ret)  # ['', '', 'cd']

ret = re.sub('\d', 'H', 'eva3egon4yuan4',1)   #replace(old,new,count)
   print(ret)                                                    #sub(re,new,str,count)

#将数字替换成'H',返回元组(替换的结果,替换了多少次)

ret = re.subn('\d', 'H', 'eva3egon4yuan4')
   print(ret)

obj = re.compile('\d{3}')  #将正则表达式编译成为一个 正则表达式对象,规则要匹配的是3个数字
    ret = obj.search('abc123eeee') #正则表达式对象调用search,参数为待匹配的字符串
   print(ret.group())  #结果 : 123

就是说太多要引用她的话,这样比较省时间;
re.search('\d{3}','abc123eeee').group()
re.search('\d{3}','bcd123eeee')
re.search('\d{3}','efg123eeee')
re.search('\d{3}','xyz123eeee')

⑧ 

ret = re.finditer('\d', 'ds3sy4784a')   #finditer返回一个存放匹配结果的迭代器
# print(ret)  # <callable_iterator object at 0x10195f940>
# for i in ret:      # 查看所有结果
#     print(i.group())
print(next(ret).group())  #查看第一个结果
# print(next(ret).group())  #查看第二个结果
print([i.group() for i in ret])  #查看剩余的左右结果


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值