python正则表达式之对号入座篇


Posted in Python onJuly 24, 2018

一、定义

正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。如果找到了符合这样一种规则的字符串,我们就说匹配上了,否则匹配失败。

二、匹配规则

1.语法规则

python正则表达式之对号入座篇 

2.相关注解

a.反斜杠问题

假如你需要匹配文本中的字符"\",那么使用编程语言表示的正则表达式里将需要4个反斜杠"\\\\":前两个和后两个分别用于在编程语言里转义成反斜杠,转换成两个反斜杠后再在正则表达式里转义成一个反斜杠。其匹配过程如下:

字符 匹配过程
\\\\abc 为字符串实值取消反斜杠转义
\\abc 为re.compile()取消反斜杠转义
\abc 欲匹配的目标字符串

为了解决输入四个“\”的麻烦,我们可以使用python里的原生字符串(raw string),即在字符串前面加上r。如下:

import re 
 print(re.search(r"\\abc","123\\abc"))

从上面可知,使用原生字符串就省去了从字符串实值到re编译器的字符串转义过程,而编译器编译的时候仍然要转义。

b.贪婪匹配与非贪婪匹配

贪婪匹配:正则表达式一般趋向于最大长度匹配,也就是所谓的贪婪匹配。如:

import re
print(re.match("ab.*c","abcdfghc"))

匹配的结果为整个字符串。而非贪婪匹配就是匹配到结果就好,最少地匹配字符。python默认是贪婪模式;在量词后面直接加上一个问号?就是非贪婪模式。

import re
 print(re.match("ab.*?c","abcdfghc"))

这样匹配的结果就是“abc”。

三、模块和函数

re模块

compile()编译语法规则

match()  从字符串开头位置开始匹配

search() 从字符串任意位置匹配到第一个符合规则的字符串

findall  以列表形式返回所有匹配到的字符串

finditer               以迭代器形式返回所有匹配到的字符串

split()  拆分字符串

group()   获取匹配到的字符串的分组信息

四、特殊构造的规则

python正则表达式之对号入座篇 

总结

以上所述是小编给大家介绍的python正则表达式之对号入座篇,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
Python 可爱的大小写
Sep 06 Python
整理Python最基本的操作字典的方法
Apr 24 Python
最大K个数问题的Python版解法总结
Jun 16 Python
Python中Iterator迭代器的使用杂谈
Jun 20 Python
Win10下python3.5和python2.7环境变量配置教程
Sep 18 Python
python在TXT文件中按照某一字符串取出该字符串所在的行方法
Dec 10 Python
使用python opencv对目录下图片进行去重的方法
Jan 12 Python
Python列表(list)所有元素的同一操作解析
Aug 01 Python
浅析使用Python搭建http服务器
Oct 27 Python
Python爬虫HTPP请求方法有哪些
Jun 03 Python
python 实现全球IP归属地查询工具
Dec 18 Python
Linux系统下升级pip的完整步骤
Jan 31 Python
Python 字符串与二进制串的相互转换示例
Jul 23 #Python
Python二进制串转换为通用字符串的方法
Jul 23 #Python
Python基于多线程实现ping扫描功能示例
Jul 23 #Python
Python Tkinter模块实现时钟功能应用示例
Jul 23 #Python
python定向爬虫校园论坛帖子信息
Jul 23 #Python
python实现图片批量压缩程序
Jul 23 #Python
python中的插值 scipy-interp的实现代码
Jul 23 #Python
You might like
PHP 上传文件大小限制
2009/07/05 PHP
php采集自中央气象台范围覆盖全国的天气预报代码实例
2015/01/04 PHP
WordPress中用于获取搜索表单的PHP函数使用解析
2016/01/05 PHP
PHP MSSQL 分页实例
2016/04/13 PHP
php结合mysql与mysqli扩展处理事务的方法
2016/06/29 PHP
PHP反射原理与用法深入分析
2019/09/28 PHP
Ext面向对象开发实践(续)
2008/11/18 Javascript
JavaScript闭包实例讲解
2014/04/22 Javascript
ActiveX控件与Javascript之间的交互示例
2014/06/04 Javascript
Js与Jq 获取页面元素值的方法和差异对比
2015/04/30 Javascript
JavaScript如何调试有哪些建议和技巧附五款有用的调试工具
2015/10/28 Javascript
jQuery checkbox选中问题之prop与attr注意点分析
2016/11/15 Javascript
分分钟玩转Vue.js组件(二)
2017/03/01 Javascript
基于构造函数的五种继承方法小结
2017/07/27 Javascript
Vue.js获取被选择的option的value和text值方法
2018/08/24 Javascript
Vue CLI3创建项目部署到Tomcat 使用ngrok映射到外网
2019/05/16 Javascript
Vue-drag-resize 拖拽缩放插件的使用(简单示例)
2019/12/04 Javascript
Vue如何获取数据列表展示
2019/12/11 Javascript
JS实现简易留言板(节点操作)
2020/03/16 Javascript
[08:42]DOTA2每周TOP10 精彩击杀集锦vol.2
2014/06/25 DOTA
[02:53]2018年度DOTA2最佳战队-完美盛典
2018/12/17 DOTA
python中引用与复制用法实例分析
2015/06/04 Python
基于Django与ajax之间的json传输方法
2018/05/29 Python
Pycharm新建模板默认添加个人信息的实例
2019/07/15 Python
django获取from表单multiple-select的value和id的方法
2019/07/19 Python
给keras层命名,并提取中间层输出值,保存到文档的实例
2020/05/23 Python
利用python下载scihub成文献为PDF操作
2020/07/09 Python
Python3爬虫关于识别检验滑动验证码的实例
2020/07/30 Python
一文带你掌握Pyecharts地理数据可视化的方法
2021/02/06 Python
HTML5新增的Css选择器、伪类介绍
2013/08/07 HTML / CSS
GE设备配件:GE Appliance Parts(家电零件、配件和滤水器)
2018/11/28 全球购物
描述JSP和Servlet的区别、共同点、各自应用的范围
2012/10/02 面试题
会计专业毕业生自荐信范文
2013/12/20 职场文书
超市5.1促销活动
2014/01/15 职场文书
城市精细化管理实施方案
2014/03/04 职场文书
节水口号标语
2014/06/19 职场文书