正则表达式之match search findall finditer的用法

直接贴代码:
参考:http://cuiqingcai.com/977.html

# -*- coding:utf-8 -*-  
# 邮箱格式-正则表达式匹配  

import re  


def print_list(list):
    for l in list:
        print l
def findall_demo():
    txt = 'IF you 100 hahah $9.90'
    # m = re.findall(r'(\d+).*\$(\d+\.?\d*)',txt)
    str1 = 'aaf ssa@ss.net asdf  -asdb@163.com.cn asdf ss-a@ss.net asdf asdd.cba@163.com afdsaf'
    m = re.findall(r'\w*-*\.*\w*@\w+\.\w+',str1)
    print_list(m)

#     match是从第一个字符开始匹配  匹配成功或不成功都结束  一个一个字符去匹配  知道匹配一模一样的就返回匹配的结果 并且结束  如果在从开头
#     往后匹配的过程中发现任何一个字符不匹配 结束匹配 返回None
def match_demo():
    regx = re.compile(r'aaf')
    str2 = 'aaafaaf ssa@ss.net asdf  -asdb@163.com.cn asdf ss-a@ss.net asdf asdd.cba@163.com afdsaf'
    result_split = re.split(r' *',str2)
    # print_list(result_split)
    for result in result_split:
        m = re.match(r'\w*-*\.*\w*@\w+\.\w+',result)
        if m:
            print(m.group())

# search方法与match方法极其类似,区别在于match()函数只检测re是不是在string的开始位置匹配,search()会扫描整个string查找匹配,
# match()只有在0位置匹配成功的话才有返回,如果不是开始位置匹配成功的话,match()就返回None。
# 同样,search方法的返回对象同样match()返回对象的方法和属性。
# search匹配成功就结束
def search_demo():
    str3 = 'aaafaaf ssa@ss.net asdf  -asdb@163.com.cn asdf ss-a@ss.net asdf asdd.cba@163.com afdsaf'
    result_split = re.split(r' *',str3)
    m = re.search(r'\w*-*\.*\w*@\w+\.\w+',str3)
    for result in result_split:
        m = re.search(r'\w*-*\.*\w*@\w+\.\w+',result)
        if m:
            print(m.group())
def finditer_demo():
    str3 = 'aaafaaf ssa@ss.net asdf  -asdb@163.com.cn asdf ss-a@ss.net asdf asdd.cba@163.com afdsaf'
    m = re.finditer(r'\w*-*\.*\w*@\w+\.\w+',str3)
    if m:
        for result in m:
            print(result.group())



if __name__=='__main__':
    match_demo()
#
# for item in items:
#     print item
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值