python内置库_RE学习笔记

介绍

  1. 官方文档

compile 生成正则表达式对象

  1. 介绍
    1. 生成正则表达式对象,方便以后多次调用
    2. 返回类型是对象
  2. 语法
    regex = compile(pattern,flags = 0)
    
  3. 参数
    参数说明
    pattern正则表达式
    flags功能标志位,增强正则表达式的功能
  4. 示例
    import re
    
    pattern = "[a-z]{1,}"
    re_obj = re.compile(pattern,flags = 0)
    result = re_obj.search("这些元素其实是glam rock, 然后加这种bling的感觉")
    print("匹配首次:",result.group())
    result = re_obj.findall("这些元素其实是glam rock, 然后加这种bling的感觉")
    print("匹配所有:",result)
    

match 匹配函数

match 用法同search,区别为match仅从开头开始匹配

search 搜索函数

介绍

  1. 介绍
    1. 匹配全体字符串,如果包括子串,则匹配成功,返回Match对象,匹配失败则返回None,若要完全匹配,子串以’$'结尾
    2. 如果有多个被匹配上,只返回第一个
    3. 返回的类型是对象
  2. 语法
    re.search(pattern,string[,flags])
    
    1. pattern: 子串,要匹配的子串
    2. string: 字符串,在此字符串中匹配子串(是正则表达式)
  3. 示例
    string = 'interface Ethernet4/32 is up'
    pattern = r'interface\s+Ethernet\d+/\d+'
    interface_search = re.search(pattern,string)
    print(interface_search)
    

实例

获取整体的匹配
  1. 对象.group()和对象.group(0)返回的都是匹配的整体
  2. 实例
    line = '18:20 interface Ehternet1/5 is up'
    intf_pattern = r'interface\s+Ehternet\d+/\d+'
    interface_search = re.search(intf_pattern, line)
    if interface_search:
        # 获取整体的匹配
        intf = interface_search.group()
        print('intf in group():', intf)
        # 同上,获取整体的匹配
        intf = interface_search.group(0)
        print('intf in group(0):', intf)
    
子串的提取
  1. 介绍
    1. 使用()区别子串
    2. 整体 对象.group()和对象.group(0)
    3. 所有子串 对象.groups()
    4. 第n个子串 对象.groups(n)
  2. 示例
     line = '18:20 interface Ehternet1/5 is up'
     intf_pattern = r'interface\s+Ehternet(\d+)/(\d+)'
     interface_search = re.search(intf_pattern, line)
     if interface_search:
         # 获取整体的匹配
         intf = interface_search.group()
         print('intf in group():', intf)
         # 同上,获取整体的匹配
         intf = interface_search.group(0)
         print('intf in group(0):', intf)
         # 获取所有子串 groups()
         intf = interface_search.groups()
         print('intf in groups():', intf)
         # 获取指定index的子串 groups(index) 注意index不要越界
         intf = interface_search.group(1)
         print('intf index in groups(1):', intf)
    

findall 查找所有函数

finditer 函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

liujinbao8000

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值