----------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/

代码实现:

 def testFirst():
#要进行处理的数据
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' #strHtml='http://www.interoem.com/messageinfo.asp?id=35' print("转化前对应的数据:%s"%strHtml) #进程正在表达式处理
result=re.findall("(http://.*?\.(com|cn)/)",strHtml) #测试
#result = re.match("http://.*\.(com|cn)/",strHtml).group() #创建一个变量,进行结果的存储
strResult='' #变量结果
for item in result:
strResult+=item[0]+" " #打印出结果
print ("转化后对应的数据:%s"%strResult)

testOne

2、 匹配所有合法的Python标识符

实现代码:

 #引用对应的包
import re import keyword #2. 匹配所有合法的Python标识符
def testFive():
#获取到python中关键字的列表
keyList=keyword.kwlist strKey="("+'|'.join(keyList)+")" #获取待处理的数据
strTitle="int main str wfwfwfwfdsfstr andand ifwhile" #打印待处理的数据
print("处理前的数据:%s"%strTitle) #进行正则的处理
result=re.findall(strKey,strTitle) #打印处理后的数据
print ("处理后的数据:%s"%str(result))

testTwo

3、匹配合法的ip地址

代码实现:

 引用包
import re #3. 匹配合法的ip地址
def testSex():
#接受用户输入的ip地址
strTitle=raw_input("请输入要进行判断的ip地址:") strRe=''
strRe+='([1-9]{1,2}|1[0-9]{2}|2[0-4][0-9]|25[0-5])'#第一位
strRe+='\.'
strRe+='([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])'#第二位
strRe+='\.'
strRe+='([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])'#第三位
strRe+='\.'
strRe+='([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$'#第四位 #进行ip是否合法的判断
result=re.match(strRe,strTitle) if result==None:
print("匹配失败!")
else:
print("匹配成功!")

testThree

python正则表达式手记的更多相关文章

  1. Python 正则表达式入门(中级篇)

    Python 正则表达式入门(中级篇) 初级篇链接:http://www.cnblogs.com/chuxiuhong/p/5885073.html 上一篇我们说在这一篇里,我们会介绍子表达式,向前向 ...

  2. Python正则表达式中的re.S

    title: Python正则表达式中的re.S date: 2014-12-21 09:55:54 categories: [Python] tags: [正则表达式,python] --- 在Py ...

  3. Python 正则表达式入门(初级篇)

    Python 正则表达式入门(初级篇) 本文主要为没有使用正则表达式经验的新手入门所写. 转载请写明出处 引子 首先说 正则表达式是什么? 正则表达式,又称正规表示式.正规表示法.正规表达式.规则表达 ...

  4. python正则表达式re

    Python正则表达式: re 正则表达式的元字符有. ^ $ * ? { [ ] | ( ).表示任意字符[]用来匹配一个指定的字符类别,所谓的字符类别就是你想匹配的一个字符集,对于字符集中的字符可 ...

  5. Python正则表达式详解

    我用双手成就你的梦想 python正则表达式 ^ 匹配开始 $ 匹配行尾 . 匹配出换行符以外的任何单个字符,使用-m选项允许其匹配换行符也是如此 [...] 匹配括号内任何当个字符(也有或的意思) ...

  6. 比较详细Python正则表达式操作指南(re使用)

    比较详细Python正则表达式操作指南(re使用) Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式.Python 1.5之前版本则是通过 regex 模块提供 E ...

  7. Python正则表达式学习摘要及资料

    摘要 在正则表达式中,如果直接给出字符,就是精确匹配. {m,n}? 对于前一个字符重复 m 到 n 次,并且取尽可能少的情况 在字符串'aaaaaa'中,a{2,4} 会匹配 4 个 a,但 a{2 ...

  8. python正则表达式 小例几则

    会用到的语法 正则字符 释义 举例 + 前面元素至少出现一次 ab+:ab.abbbb 等 * 前面元素出现0次或多次 ab*:a.ab.abb 等 ? 匹配前面的一次或0次 Ab?: A.Ab 等 ...

  9. Python 正则表达式-OK

    Python正则表达式入门 一. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Python的一部分. 正则表达式是用于处理字符串的强大工具, 拥有自己独特的语法以及一个独立的处理引擎, 效率上 ...

随机推荐

  1. Effective Java通俗理解(持续更新)

    这篇博客是Java经典书籍<Effective Java(第二版)>的读书笔记,此书共有78条关于编写高质量Java代码的建议,我会试着逐一对其进行更为通俗易懂地讲解,故此篇博客的更新大约 ...

  2. 安装oh-my-zsh

    目标:安装oh-my-zsh,并使用last-working-dir插件(再次登录时,默认在上次退出时的目录)环境:CentOS 7.3.1611 最好看原著 -> https://github ...

  3. 27. leetcode 401. Binary Watch

    A binary watch has 4 LEDs on the top which represent the hours (0-11), and the 6 LEDs on the bottom ...

  4. EXT系统中的信息查询

    if (Ext.getCmp('rdPlaceLocation').checked) { choseRoad = false; var placeLocationWindow = Ext.getCmp ...

  5. 【学习OpenCV】——2.4对图像进行平滑处理

    作者基于WIN10+VS2015+OpenCV3.0.0 (本人在学习的时候参考了xiahouzuoxin 的有关文章,在此感谢 ) 图像平滑与图像模糊是同一概念,主要用于图像的去噪.平滑要使用滤波器 ...

  6. LR的响应时间与使用IE所感受时间不一致的讨论

    在做性能测试时,有时碰到这样一种情况,使用性能工具LR测试出来的响应时间比实际使用IE感受到的时间要长,例如,实际使用IE打开一个系统时只需要1~2秒,而使用LR跑一个用户所得出的结果可能是8秒.10 ...

  7. python实战===输入密码以******的形式在cmd中展示

    #设置密码输入,显示为****** import msvcrt,sys def pwd_input(): chars = [] while True: try: newChar = msvcrt.ge ...

  8. 【LeetCode】数组-1(643)-返回规定长度k的最大子数组的平均数

    好久没有刷LeetCode了,准备重拾并坚持下去,每天刷个两小时.今天算是开始的第一天,不过出师不利,在一道很简单的题目上墨迹半天.不过还好,现在踩过的坑,应该都不会白踩,这些可能都是以后程序员路上稳 ...

  9. SQL视图&触发器

    SQL视图 在 SQL 中,视图是基于 SQL 语句的结果集的可视化的表. 视图包含行和列,就像一个真实的表.视图中的字段就是来自一个或多个数据库中的真实的表中的字段.我们可以向视图添加 SQL 函数 ...

  10. WebBrowser keystroke

    问题描述:将对话框中的回车消息传递到WebBrowser控件中去. 一开始的解决方案是:通过iwebbrowser2的成员函数get_HWND获取控件的句柄,然后通过SendMessage发送按键消息 ...