----------re模块进行正则的使用----------
#result=re.match(正则表达式,要匹配的字符串):使用正则对字符串进行过滤从前面开始匹配
#result.group():将获得到的数据取出
#result=re.search(正则表达式,要匹配的字符串):使用正则对字符串进行过滤从后面开始匹配
#result==None:判断正则表达式是否获取到内容,如果为True,则没有获取到内容
#re.search(r‘d+‘,‘my hight 177 cm‘).group():使用正则读字符串进行过滤从找到符合要求的字符开始匹配。
#re.findall(r‘d+‘,‘my hight 177 cm my weight 100 kg‘):获取字符串中所有符合正则条件的数据信息,并保存到一个列表中
#re.sub(r‘d+‘,‘100‘,‘my high 177 cm‘):获取字符串中所有符合正则条件的数据信息,并使用第二个位置上的数据信息对其进行数据的替换操作
第二个位置可以配合函数进行处理,return返回值为str类型
#re.split(r‘:| ‘,‘address:beijing xxx@126.com‘):根据正则表示式提供的规则对字符串进行有效的切割操作。并将结果存储到对应的列表中
----------正则表达式单字符匹配----------
.:匹配任意字符
[]:匹配[]中列举的字符
d:匹配任意一个数字
D:匹配非数字,即不是数字
s;匹配空吧即 空格、tab键
S:匹配非空白
w:匹配单词字符,字母、数字、下划线
W:匹配非单词字符,字母、数字、下划线
----------正则表达式多个字符匹配----------
*:匹配前一个字符出现0次或者无限次,即可有可无
+:匹配前一个字符出现1次或者无限次,即只有有1次
?:匹配前一个字符出现1次或者0次,即要么有1次,要么没有
{m}:匹配前一个字符出现m次
{m,n}:匹配前一个字符出现从m到n次
---------匹配开头结尾----------
^:匹配字符串开头
$:匹配字符串结尾
:转义
---------匹配分组----------
|:匹配左右任意一个表达式
():将括号中字符作为一个分组
<num>:引用分组num匹配到的字符串
(?P<name>):分组起别名
(?P=name):引用别名为name分组匹配到的字符串
---------附:正则表达式的练习题---------
1、匹配网址
有一批网址:
http://www.interoem.com/messageinfo.asp?id=35
http://3995503.com/class/class09/news_show.asp?id=14
http://lib.wzmc.edu.cn/news/onews.asp?id=769
http://www.zy-ls.com/alfx.asp?newsid=377&id=6
http://www.fincm.com/newslist.asp?id=415
需要 正则后为:
http://www.interoem.com/
http://3995503.com/
http://lib.wzmc.edu.cn/
http://www.zy-ls.com/
http://www.fincm.com/
代码实现:
1
def
testFirst():
2
#
要进行处理的数据
3 strHtml=‘http://www.interoem.com/messageinfo.asp?id=35 http://3995503.com/class/class09/news_show.asp?id=14 http://lib.wzmc.edu.cn/news/onews.asp?id=769 http://www.zy-ls.com/alfx.asp?newsid=377&id=6 http://www.fincm.com/newslist.asp?id=415‘ 4 5#strHtml=‘http://www.interoem.com/messageinfo.asp?id=35‘ 6 7 8print("转化前对应的数据:%s"%strHtml)
910#进程正在表达式处理11 result=re.findall("(http://.*?.(com|cn)/)",strHtml)
1213#测试14#result = re.match("http://.*.(com|cn)/",strHtml).group()1516#创建一个变量,进行结果的存储17 strResult=‘‘1819#变量结果20for item in result:
21 strResult+=item[0]+""2223#打印出结果24print ("转化后对应的数据:%s"%strResult)
2、 匹配所有合法的Python标识符
实现代码:
1
#
引用对应的包
2
import
re
3
4
import
keyword
5
6
#
2. 匹配所有合法的Python标识符
7
def
testFive():
8
#
获取到python中关键字的列表
9 keyList=keyword.kwlist
1011 strKey="("+‘|‘.join(keyList)+")"1213#获取待处理的数据14 strTitle="int main str wfwfwfwfdsfstr andand ifwhile"1516#打印待处理的数据17print("处理前的数据:%s"%strTitle)
1819#进行正则的处理20 result=re.findall(strKey,strTitle)
2122#打印处理后的数据23print ("处理后的数据:%s"%str(result))
3、匹配合法的ip地址
代码实现:
1
引用包
2
import
re
3
4
#
3. 匹配合法的ip地址
5
def
testSex():
6
#
接受用户输入的ip地址
7 strTitle=raw_input("请输入要进行判断的ip地址:")
8 9 strRe=‘‘10 strRe+=‘([1-9]{1,2}|1[0-9]{2}|2[0-4][0-9]|25[0-5])‘#第一位11 strRe+=‘.‘12 strRe+=‘([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])‘#第二位13 strRe+=‘.‘14 strRe+=‘([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])‘#第三位15 strRe+=‘.‘16 strRe+=‘([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$‘#第四位1718#进行ip是否合法的判断19 result=re.match(strRe,strTitle)
2021if result==None:
22print("匹配失败!")
23else:
24print("匹配成功!")
原文:http://www.cnblogs.com/qingtianyu2015/p/5854845.html
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!