python正则表达式_总结
正则表达式:
作用:正则表达式是用来查找字符串的。
之前:使用正则表达式首先要导入re模块(import re)
- re.match -- 从字符串的第一个单词开始匹配字符串。如果匹配到则返回一个对象;如果匹配不到则返回None.
- >>> import re
- >>> s = 'besttest is good! besttest best'
- >>> print re.match(r'best',s)
- <_sre.SRE_Match object at 0x0000000001F6C578>
- >>> print re.match(r'est',s)
- None
解析:
- match方法接收3个参数,第一个是匹配的规则,也就是正则表达式;第二个是被检查的字符串;第三个参数不是必填的,用于控制正则表达式的匹配方式。
- 在正则表达式的前面加一个'r',代表按字符原样来匹配;否则当表达式字符串中包含转义字符的话就会被转义。
- re.search -- search的方法是从字符串的整个内容里面找,如果找到了就返回第一个,找不到就返回None.如果想列出找到的内容需要用.group()方法,即(re.search(r'is',s).group())
- >>> import re
- >>> s = 'besttest is good! besttest best'
- >>> print re.search(r'best',s)
- <_sre.SRE_Match object at 0x0000000001F6C578>
- >>> print re.search(r'best',s).group()
- best
- >>> print re.search(r'bet',s)
- None
- re.findall -- 是从字符串所有内容中找,找到就返回,直到找完.它的返回值是一个列表.
- >>> import re
- >>> s = 'besttest is good! besttest best'
- >>> print re.findall(r'best',s)
- ['best', 'best', 'best']
- >>> print re.findall(r'bst',s)
- []
- re.sub -- 用来替换字符串的.即:用正则表达式身后的字符串替换正则表达式的字符串,会返回一个新的整个字符串.如果匹配不到的话,直接返回原来的字符串.
- >>> import re
- >>> s = 'besttest is good! besttest best'
- >>> print re.sub(r'best','BEST',s)
- BESTtest is good! BESTtest BEST
- >>>
- >>> s = 'besttest is good! besttest best'
- >>> print re.sub(r'bst','BEST',s)
- besttest is good! besttest best
- 正则符号:
- * :匹配*前面的一个字符0-多次
- +:匹配+前面的一个字符1-多次
- ?:匹配?前面的一个字符0-1次
- {n}:匹配花括号前面的一个字符n次
- {n,m}:匹配花括号前面一个字符n-m次
- .:默认匹配除\n之外的任意一个字符
- \:转义符,如果想让特殊字符失去以前(1.2.3)的含义,那么就需要在它前面加上'\'
- |:匹配|左边或|右的字符
- []:字符集合,里面是某些字符的集合,匹配的时候是这个集合里面的任意一个就可以。如果[]里面含有^时,代表取反,也就是不包括这些字符串
- ^:代表匹配以什么字符串开头,多行的情况个下匹配每一行的开头
- $:匹配以什么字符结尾,多行情况下匹配每一行的结尾
- \A:仅仅代表以什么字符开头,和'^'不同的是它不能用多行模式
- \Z:仅仅代表以什么字符结尾,和'$'不同的是它不能用多行模式
- \d:匹配数字0-9
- \D:匹配非数字
- \w:匹配[A-Za-z0-9],也就是所有的字母和数字和中文
- \W:匹配不是[A-Za-z0-9],也就是不是字母和数字和中文
- \s:匹配空白字符,如\t、\n、\r、空格
- \S:匹配非空白字符,不是\t、\n、\r、空格
- [A-z]:大小写字母
- [a-z]:小写字母
- [A-Z]:大写字母
- [0-9]:所有的数字
- 分组匹配
- >>> import re
- >>> pattern = r'\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}'
- >>> print re.findall(pattern,"192.168.1.2")
- ['192.168.1.2']
- >>>
- >>> pattern_1 = r'\d{1,3}(?:\.\d{1,3}){3}'
- >>> print re.findall(pattern_1,"192.168.1.2")
- ['192.168.1.2']
参考链接:http://www.cnblogs.com/houzhizhe/p/7065682.html
python正则表达式_总结的更多相关文章
- Python正则表达式Regular Expression基本用法
资料来源:http://blog.csdn.net/whycadi/article/details/2011046 直接从网上资料转载过来,作为自己的参考.这个写的很清楚.先拿来看看. 1.正则表 ...
- [转] Python正则表达式指南
本文介绍了Python对于正则表达式的支持,包括正则表达式基础以及Python正则表达式标准库的完整介绍及使用示例.本文的内容不包括如何编写高效的正则表达式.如何优化正则表达式,这些主题请查看其他教程 ...
- python 正则表达式汇总
一. 正则表达式基础 1.1.概念介绍 正则表达式是用于处理字符串的强大工具,它并不是Python的一部分. 其他编程语言中也有正则表达式的概念,区别只在于不同的编程语言实现支持的语法数量不同. 它拥 ...
- Python 正则表达式学习笔记
本文介绍了Python对于正则表达式的支持,包括正则表达式基础以及Python正则表达式标准库的完整介绍及使用示例.本文的内容不包括如何编写高效的正则表达式.如何优化正则表达式,这些主题请查看其他教程 ...
- Python 正则表达式 (python网络爬虫)
昨天 2018 年 01 月 31 日,农历腊月十五日.20:00 左右,152 年一遇的月全食.血月.蓝月将今晚呈现空中,虽然没有看到蓝月亮,血月.月全食也是勉强可以了,还是可以想像一下一瓶蓝月亮洗 ...
- python 正则表达式Re
Python正则表达式指南这篇文章很好,推荐阅读. 本文则是简单记录下我自己学习Re的笔记, 环境是python3.5. 1.简单的Re语法 ^ 匹配字符串开始位置. $ 匹配字符串结束位置. \b ...
- Python正则表达式指南(转)
目录 Python正则表达式指南(转) 0.防走丢 1. 正则表达式基础 1.1. 简单介绍 1.2. 数量词的贪婪模式与非贪婪模式 1.3. 反斜杠的困扰 1.4. 匹配模式 2. re模块 2.1 ...
- python 正则表达式规则收集
python正则表达式基本元字符 . 通配符,匹配所有字符 ^abc 匹配以abc开始的字符串 abc$ 匹配以abc结尾的字符串 [abc] 匹配字符集合 [A-Z0-9] 匹配字符范围 ...
- 7.Python 正则表达式学习笔记
本文介绍了Python对于正则表达式的支持,包括正则表达式基础以及Python正则表达式标准库的完整介绍及使用示例.本文的内容不包括如何编写高效的正则表达式.如何优化正则表达式,这些主题请查看其他教程 ...
随机推荐
- UI 经常用法总结之--- UILabel UITextField (不断更新中)
UILabel : UIView <NSCoding> 1.创建一个UILabel对象 UILabel *label = [[UILabel alloc]initWithFrame:CGR ...
- 避免使用vector<bool>
作为一个STL容器,vector<bool>仅仅有两点不正确. 首先.它不是一个STL容器. 其次,它并不存储bool.除此之外.一切正常. 一个对象要成为容器,就必须满足C++标准 ...
- python05-09
一.lambda表达式 def f1(): return 123 f2 = lambda : 123 def f3 = (a1,a2): return a1+a2 f4 = lambda a1,a2 ...
- VS code - code Snippet
For anyone working on the UI and using VS Code, you can create a user Snippet and keyboard shortcut ...
- 创业公司做数据分析(四)ELK日志系统
作为系列文章的第四篇.本文将重点探讨数据採集层中的ELK日志系统.日志.指的是后台服务中产生的log信息,一般会输入到不同的文件里.比方Django服务下,一般会有nginx日志和uWSGI日志. ...
- Linux——系统调用笔记1
底层文件访问: 进程:运行中的程序,它有一些与值关联的文件描述符,有多少个文件描述符取决于系统配置情况. 当一个程序开始运行时,一般会打开三个文件描述符: 0:标准输入 ...
- 开发Nodejs(rest框架)版本的百度新闻系统--开发环境配置
项目介绍:配置好开发环境,制作前端百度新闻界面,后台开发成Nodejs版本,做成做成rest风格API形式搭载mysql,使用Bootstrap搭建后台页面,完成对新闻的增删改查功能,利用Ajax配合 ...
- MySql InnoDb还原工具
通过任意文件下载找到了mysql的备份,表类型是独享式innodb,由一个frm文件和一个ibd文件组成. 本以为直接复制到本地的mysql数据目录中即可恢复数据,但在查询时却发现并不如所愿: mys ...
- WebService(2)-XML系列之用Stax操作Xml
源代码下载:链接: http://pan.baidu.com/s/1ntL1a7R password: rwp1 本文主要讲述:利用Stax处理xml文档 一.读取xml 1.基于光标的查找 核心:X ...
- eclipse下对中文乱码问题的一些思考
一.浏览器问题 当你的html页面或jsp页面没有显式声明页面编码的时候,也就是没有下面其中之一的代码 <meta http-equiv="content-type" con ...