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中字符串的格式化方法小结
May 03 Python
对python 操作solr索引数据的实例详解
Dec 07 Python
用python脚本24小时刷浏览器的访问量方法
Dec 07 Python
python 实现12bit灰度图像映射到8bit显示的方法
Jul 08 Python
Python获取好友地区分布及好友性别分布情况代码详解
Jul 10 Python
pytorch绘制并显示loss曲线和acc曲线,LeNet5识别图像准确率
Jan 02 Python
Python namedtuple命名元组实现过程解析
Jan 08 Python
python颜色随机生成器的实例代码
Jan 10 Python
Python3标准库之dbm UNIX键-值数据库问题
Mar 24 Python
python爬虫中url管理器去重操作实例
Nov 30 Python
利用python查看数组中的所有元素是否相同
Jan 08 Python
python如何利用traceback获取详细的异常信息
Jun 05 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
用ODBC的分页显示
2006/10/09 PHP
Win2003下APACHE+PHP5+MYSQL4+PHPMYADMIN 的简易安装配置
2006/11/18 PHP
DISCUZ 论坛管理员密码忘记的解决方法
2009/05/14 PHP
PHP 面向对象 final类与final方法
2010/05/05 PHP
php中\r \r\n \t的区别示例介绍
2014/02/08 PHP
用jquery和json从后台获得数据集的代码
2011/11/07 Javascript
使用ajax+jqtransform实现动态加载select
2014/12/01 Javascript
基于js实现投票的实例代码
2015/08/04 Javascript
分析js闭包引起的事件注册问题
2016/03/29 Javascript
JS获取子窗口中返回的数据实现方法
2016/05/28 Javascript
javascirpt实现2个iframe之间传值的方法
2016/06/30 Javascript
JS控制TreeView的结点选择
2016/11/11 Javascript
nodejs操作mysql实现增删改查的实例
2017/05/28 NodeJs
AngularJS学习笔记之表单验证功能实例详解
2017/07/06 Javascript
vue组件生命周期详解
2017/11/07 Javascript
浅谈让你的代码更简短,更整洁,更易读的ES6小技巧
2018/10/25 Javascript
浅析JavaScript异步代码优化
2019/03/18 Javascript
基于jquery ajax的多文件上传进度条过程解析
2019/09/11 jQuery
Python socket编程实例详解
2015/05/27 Python
Python中元组,列表,字典的区别
2017/05/21 Python
pandas groupby 分组取每组的前几行记录方法
2018/04/20 Python
使用实现XlsxWriter创建Excel文件并编辑
2018/05/04 Python
使用PyQt4 设置TextEdit背景的方法
2019/06/14 Python
Django中信号signals的简单使用方法
2019/07/04 Python
使用python 将图片复制到系统剪贴中
2019/12/13 Python
pycharm实现猜数游戏
2020/12/07 Python
基于Python的接口自动化读写excel文件的方法
2021/01/15 Python
Html5与App的通讯方式详解
2019/10/24 HTML / CSS
前台接待的工作职责
2013/11/21 职场文书
给实习单位的感谢信
2014/02/01 职场文书
企业出纳岗位职责
2014/03/12 职场文书
单位工程竣工验收方案
2014/03/16 职场文书
《鸿门宴》教学反思
2014/04/22 职场文书
开展批评与自我批评心得体会
2014/10/17 职场文书
财务统计员岗位职责
2015/04/14 职场文书
关于python类SortedList详解
2021/09/04 Python