python re的各种方法

  1. re的matche方法和search方法
    #正则对象的match匹配
    import re
    reg = re.compile(r'(hello w.*)(hello Y.*)')
    print(dir(reg))
    a = 'hello world hello YangLing'
    result = reg.match(a)
    print(result)
    print(result.group())
    
    b = 'aa' + a
    print(b)
    result2 = reg.match(b)
    print(result2)
    
    
    #正则对象的search方法做一个比较
    m = 'kdsjfigheigjewijsgiegekdsjgeighse'
    print('#'*30)
    result3 = reg.search(b)
    print(result3)
    print(result3.groups())


  2. re的split,findall,finditer方法
    re.split(pattern, string[, maxsplit])
    按照能够匹配的子串将string分割后返回列表。maxsplit用于指定最大分割次数,不指定将全部分割。
    re.findall(pattern, string[, flags])
    搜索string,以列表形式返回全部能匹配的子串
    re.finditer(pattern, string[, flags])
    搜索string,返回一个顺序访问每一个匹配结果(Match对象)的迭代器

    import re
    
    p1 = re.compile(r'\d+')
    a_str = 'one1two2thress3four4'
    
    #正则对象的split方法,使用正则匹配进行分割字符串
    #最后以列表的形式返回回去
    print(p1.split(a_str))
    
    #正则对象那个的findall方法,来查找符合对象的字符串
    #最后是以列表的形式返回回去
    print(p1.findall(a_str))
    
    for i in p1.finditer(a_str):
    print(i.group())

    import re
    prog = re.compile(r'(?P<tagname>abc)(\w*)(?P=tagname)')
    result = prog.match('abclfjlad234sjldabc')
    
    #finditer 迭代以后每个对象都是一个matche对象
    
    print(dir(result))
    print(result)
    
    print(result.groups())
    print(result.group(2))
    print(result.group(1))
    print('#'*30)
    print(result.group('tagname'))
    #matche对象的group返回一个元组,下标是以1开头。
    
    print(result.groupdict())


  3. re的match对象
    re模块是python中处理正则表达式的一个模块,通过re模块的方法,把正则表达式pattern编译成正则对象,以便使用正则对象的方法。那为什么要使用re模块来把正则表达式搞成正则对象呢,最主要的是可以提高代码的执行效率。
    正则匹配是,优先编译成正则对象,然后再进行匹配,这样程序的效率更高
     编译正则对象
     正则匹配总写一个r是什么意思?
     r表示raw的简及raw string 意思是原生字符,也就是说是这个字符串中间的特殊字符不用转义
     比如你要表示‘\n’,可以这样:r'\n'
     但是如果你不用原生字符 而是用字符串你得这样:‘\\n’
    关于match对象的常用属性和方法
    match对象是一次匹配的结果,包含了很多关于此次匹配的信息
    属性:
    1.string: 匹配时使用的文本。
    2.re: 匹配时使用的Pattern对象。
    方法:
    1.group([group1, …]):
    获得一个或多个分组截获的字符串;指定多个参数时将以元组形式返回。group1可以使用编号也可以使用别名;编号0代表整个匹配的子串;不填写参数时,返回group(0);没有截获字符串的组返回None;截获了多次的组返回最后一次截获的子串。
    2.groups([default]):
    以元组形式返回全部分组截获的字符串。相当于调用group(1,2,…last)。default表示没有截获字符串的组以这个值替代,默认为None。
    3.groupdict([default]):
    返回以有别名的组的别名为键、以该组截获的子串为值的字典,没有别名的组不包含在内。default含义同上。

    import re
    # 匹配如下内容:单词+空格+单词+任意字符
    m = re.match(r'(\w+) (\w+)(?P<sign>.*)', 'hello world!')
      
    print "m.string:", m.string
    print "m.re:", m.re
    print "m.group():", m.group()
    print "m.group(1,2):", m.group(1, 2)
    print "m.groups():", m.groups()
    print "m.groupdict():", m.groupdict()


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值