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 中文字符串的处理实现代码
Oct 25 Python
python中django框架通过正则搜索页面上email地址的方法
Mar 21 Python
python Selenium爬取内容并存储至MySQL数据库的实现代码
Mar 16 Python
利用Anaconda完美解决Python 2与python 3的共存问题
May 25 Python
Python切片工具pillow用法示例
Mar 30 Python
解决python os.mkdir创建目录失败的问题
Oct 16 Python
Python正则表达式匹配和提取IP地址
Jun 06 Python
关于Python 的简单栅格图像边界提取方法
Jul 05 Python
使用python远程操作linux过程解析
Dec 04 Python
tensorflow 利用expand_dims和squeeze扩展和压缩tensor维度方式
Feb 07 Python
如何在windows下安装Pycham2020软件(方法步骤详解)
May 03 Python
python DataFrame中stack()方法、unstack()方法和pivot()方法浅析
Apr 06 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
smarty实例教程
2006/11/19 PHP
php文件怎么打开 如何执行php文件
2011/12/21 PHP
浅析Apache中RewriteCond规则参数的详细介绍
2013/06/30 PHP
php获取访问者IP地址汇总
2015/04/24 PHP
详解如何在云服务器上部署Laravel
2017/06/30 PHP
PHP实现浏览器格式化显示XML的方法示例
2019/01/22 PHP
ASP.NET jQuery 实例11 通过使用jQuery validation插件简单实现用户登录页面验证功能
2012/02/03 Javascript
jquery.post用法之type设置问题
2014/02/24 Javascript
原生JS实现旋转木马式图片轮播插件
2016/04/25 Javascript
JavaScript学习小结之被嫌弃的eval函数和with语句实例详解
2016/08/01 Javascript
AngularJS基础 ng-src 指令简单示例
2016/08/03 Javascript
js实现无缝循环滚动
2020/06/23 Javascript
jquery 获取索引值在一定范围的列表方法
2018/01/25 jQuery
element-ui中的select下拉列表设置默认值方法
2018/08/24 Javascript
js类的继承定义与用法分析
2019/06/21 Javascript
three.js利用gpu选取物体并计算交点位置的方法示例
2019/11/25 Javascript
如何搭建一个完整的Vue3.0+ts的项目步骤
2020/10/18 Javascript
python线程锁(thread)学习示例
2013/12/04 Python
python直接访问私有属性的简单方法
2016/07/25 Python
python实现扫描日志关键字的示例
2018/04/28 Python
PyTorch CNN实战之MNIST手写数字识别示例
2018/05/29 Python
python3.6数独问题的解决
2019/01/21 Python
Django Sitemap 站点地图的实现方法
2019/04/29 Python
python中的split()函数和os.path.split()函数使用详解
2019/12/21 Python
Python如何将装饰器定义为类
2020/07/30 Python
python实现梯度下降算法的实例详解
2020/08/17 Python
python中的yield from语法快速学习
2020/11/06 Python
Python实现邮件发送的详细设置方法(遇到问题)
2021/01/18 Python
La Senza官网:北美顶尖性感内衣品牌
2018/08/03 全球购物
优秀团员个人的自我评价
2013/10/02 职场文书
员工自我鉴定范文
2013/10/06 职场文书
六查六看剖析材料
2014/02/15 职场文书
《风娃娃》教学反思
2014/04/19 职场文书
公司爱心捐款倡议书
2014/05/14 职场文书
内科护士节演讲稿
2014/09/11 职场文书
浅谈Redis缓冲区机制
2022/06/05 Redis