Python 正则匹配(re)组的应用
昨天刚看完re的一小部分,今天刚好有个任务需要用到正则。
需求是:一张表的text字段存了很多内容。里面包括发给用户的邮件内容,已经用户的邮箱等等。现在需要查找出发送给哪些email以及多少封邮件。需要匹配的
是 <a href="mailto:AAA@DDD.com">AAA@DDD.com</a>',把 “AAA@DDD.com”取出来。
用下面的脚本:
#!/bin/env python # -*- encoding: utf-8 -*- #------------------------------------------------------------------------------- # Name: find_email.py # Purpose: 从文本中正则匹配数据 # Author: zhoujy # Created: 2012-10-29 # update: 2012-10-29 #------------------------------------------------------------------------------- import re import fileinput import MySQLdbconn = MySQLdb.connect(host='192.168.1.20',user='zjy',passwd='123456',db='emd',port=3308) query = '''select content from message e JOIN mesInfo m ON e.id=m.id WHERE m.infoType=1 and date_format(e.sendTime, "%y-%m")="12-09"''' cursor= conn.cursor() cursor.execute(query) item = cursor.fetchall()pat = re.compile(r'<a href="mailto:(.*)"') Finddict = {}#for line in fileinput.input(): for line in item:line=str(line)m = pat.search(line)if m: # print m.group(1)Finddict[m.group(1)] = Finddict.get(m.group(1),0)+1 List = sorted(Finddict.items(),key=lambda i: -i[1]) for kv in List:print kv[0] + ' : ' + str(kv[1])
结果:
123456@qq.com : 11 123456@126.com : 10 123456@139.com : 10 123456@yeah.net : 9 123456@cmc.edu.cn : 7 123456@sina.com : 7 123456@fudan.edu.cn : 6 .....
另一个应用:
用正则表达式将网页代码中所有<img src="XXX"> 形式中的XXX的字符串提取出
#!/usr/bin/env python #-*-encoding:utf8-*- #用正则表达式将所有<img src="XXX"> 形式中的XXX的字符串提取出import sys import urllib2 import redef get_html(url):data = urllib2.urlopen(url).read()pat = re.compile(r'<img src="(\S*)"') #正常情况只需要写成:r'<img src="(.*)"' ,但有些后面会带有一些长宽等属性,所以需要去除空白字符imgs = pat.findall(data)for i in imgs:print i if __name__ == '__main__':url = sys.argv[1]get_html(url)
效果:
zhoujy@m2:~$ python get_url.py http://www.baidu.com http://www.baidu.com/img/bdlogo.gif http://www.baidu.com/cache/global/img/gs.gif
知识点:
re模块,匹配对象和组。--- < Python 基础教程(第2版) P191~P200 >
Python 正则匹配(re)组的应用相关推荐
- python正则匹配表达式(2)
上节主要讲解python正则匹配的匹配表达式,而需要调用相应的API才能解决如何匹配的问题. 在python官方文档Regular Expression HOWTO给出了python匹配函数,官方给出 ...
- 使用Python 正则匹配两个特定字符之间的字符方法
string = "<KeysViewHDF5 ['Inoisy']>" import redef cut_out(a,b,string):result = re.fi ...
- Python正则匹配 去除文本中的各类emoji表情符号
我们的文本数据中经常会带有很多表情,如何完整地清除得到高质量的文本供我们利用呢? p = re.compile(u'['u'\U0001F300-\U0001F64F' u'\U0001F680-\U ...
- python正则匹配ABAC型词语
python正则匹配ABAC型词语 前言 代码 前言 本人第一次写博客,欢迎指出不足. 代码 今天做python作业,发现很多文章不能很好地解决匹配ABAC型的词语,例如: patten =r'((. ...
- python正则匹配txt特定字符串(有换行)
python正则匹配txt特定字符串(有换行) 在原txt文件中,我们需要匹配出的字符串为:休闲服务(中间参杂着换行) 直接复制到notebook里进行处理 完整代码 在原txt文件中,我们需要匹配出 ...
- python正则匹配汉字
python正则匹配汉字的规则为:[\u4e00-\u9fa5] 后面可以加一个+,匹配多个汉字. 例子如下: print(re.findall(r'[\u4e00-\u9fa5]+', '这是测试用 ...
- python正则表达式匹配数字或者逗号_python正则表达式去掉数字中的逗号(python正则匹配逗号)...
分析 数字中经常是3个数字一组,之后跟一个逗号,因此规律为:***,***,*** 正则式[a-z]+,[a-z]? import re sen = "abc,123,456,789,mnp ...
- python正则匹配日期2019-03-11_都2019年了,正则表达式为啥还是这么难?这里的Python学习教程教你搞定!...
都9102年了,你还觉得正则表达式很难?难,确实是还难啊! 这里南瓜跟大家总结的最新Python学习教程,教你搞定它! 正则表达式语法 字符与字符类 特殊字符: .^$?+*{}| 以上特殊字符要想使 ...
- python 正则匹配
在python 中,正则匹配用到的还是挺多的,下面总结一下常用的一些正则匹配: 精确匹配: \d可以匹配一个数字, \w可以匹配一个字母或数字, . 匹配任意的单个字符 \s可以匹配一个空格(也包括T ...
最新文章
- 夜间模式html,Web前端-夜间模式
- “温室里的花朵”也要直面困难
- db2 linux 导入数据_实现DB2数据库迁移之导入步骤在Linux下
- 大侠学java之继承
- 战争论 —— 蓝田之战
- 利用JSP编程技术实现一个简单的购物车程序
- 彻底删除MySQL教程
- 二、Java的三大特征(或者四大特征)
- gb/t19011-2013 管理体系审核指南
- Lnmp部署tp5项目报错:require(): open_basedir restriction in effect. File(/home/wwwroot/api.321.design/think
- 读 Robert C. Solomon 之《哲学导论》
- PPT转word可以使用什么软件
- r语言echarts画箱线图_echarter: Echarts的R语言接口
- 解决笔记本IPS屏幕发黄问题
- 《让大脑自由》-- 之释放天赋的12条定律
- 属性动画、帧动画、补间动画的介绍使用及对比
- 计算机二级考试c语言冲刺,计算机二级考试试题C语言冲刺试题
- java 文件头_常用文件的文件头(附JAVA测试类)
- 代驾小程序源码开发这3大功能不可少
- 领域研究 | IL-1B与先天免疫