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中tell()方法的使用详解
May 24 Python
Python2.x中文乱码问题解决方法
Jun 02 Python
Django入门使用示例
Dec 12 Python
python3中的md5加密实例
May 29 Python
Python 实现两个列表里元素对应相乘的方法
Nov 14 Python
Python中使用遍历在列表中添加字典遇到的坑
Feb 27 Python
详解Python数据分析--Pandas知识点
Mar 23 Python
python中的decimal类型转换实例详解
Jun 26 Python
win10下安装Anaconda的教程(python环境+jupyter_notebook)
Oct 23 Python
使用scrapy ImagesPipeline爬取图片资源的示例代码
Sep 28 Python
python 用struct模块解决黏包问题
Nov 07 Python
Python 内存管理机制全面分析
Jan 16 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
ThinkPHP水印功能实现修复PNG透明水印并增加JPEG图片质量可调整
2014/11/05 PHP
php使用Jpgraph绘制复杂X-Y坐标图的方法
2015/06/10 PHP
php图像验证码生成代码
2017/06/08 PHP
javascript web对话框与弹出窗口
2009/02/22 Javascript
javascript获取当前ip的代码
2009/05/10 Javascript
JavaScript 异步调用框架 (Part 1 - 问题 & 场景)
2009/08/03 Javascript
jQuery EasyUI API 中文文档 - EasyLoader 加载器
2011/09/29 Javascript
Jquery创建层显示标题和内容且随鼠标移动而移动
2014/01/26 Javascript
详解JavaScript语法对{}处理的坑爹之处
2014/06/05 Javascript
JavaScript动态创建link标签到head里的方法
2014/12/22 Javascript
JavaScript中this的9种应用场景及三种复合应用场景
2015/09/12 Javascript
谈谈Jquery ajax中success和complete有哪些不同点
2015/11/20 Javascript
利用Angularjs实现幻灯片效果
2016/09/07 Javascript
预防网页挂马的方法总结
2016/11/03 Javascript
详解JavaScript时间处理之几个月前或几个月后的指定日期
2016/12/21 Javascript
基于jQuery实现一个marquee无缝滚动的插件
2017/03/09 Javascript
解决layer弹层遮罩挡住窗体的问题
2018/08/17 Javascript
vue基础之模板和过滤器用法实例分析
2019/03/12 Javascript
Vue 实现html中根据类型显示内容
2019/10/28 Javascript
Vue axios与Go Frame后端框架的Options请求跨域问题详解
2020/03/03 Javascript
Node.JS如何实现JWT原理
2020/09/18 Javascript
js操作两个json数组合并、去重,以及删除某一项元素
2020/09/22 Javascript
python encode和decode的妙用
2009/09/02 Python
python计数排序和基数排序算法实例
2014/04/25 Python
Python用 KNN 进行验证码识别的实现方法
2018/02/06 Python
使用pandas模块读取csv文件和excel表格,并用matplotlib画图的方法
2018/06/22 Python
python使用循环打印所有三位数水仙花数的实例
2018/11/13 Python
Python中的list与tuple集合区别解析
2019/10/12 Python
Tod’s英国官方网站:意大利奢华手工制作手袋和鞋履
2019/03/15 全球购物
党员反对四风思想汇报范文
2014/10/25 职场文书
社区党务工作总结2015
2015/05/19 职场文书
25句企业管理语录:助你迅速打开思路,句句经典!
2020/01/14 职场文书
CSS实现多个元素在盒子内两端对齐效果
2021/03/30 HTML / CSS
浅谈如何提高PHP代码质量之单元测试
2021/05/28 PHP
MySQL 那些常见的错误设计规范,你都知道吗
2021/07/16 MySQL
Elasticsearch 配置详解
2022/04/19 Java/Android