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中的集合类型知识讲解
Aug 19 Python
全面了解Python的getattr(),setattr(),delattr(),hasattr()
Jun 14 Python
python函数的5种参数详解
Feb 24 Python
python数据处理 根据颜色对图片进行分类的方法
Dec 08 Python
Python+OpenCV采集本地摄像头的视频
Apr 25 Python
Python3+Requests+Excel完整接口自动化测试框架的实现
Oct 11 Python
python中元组的用法整理
Jun 15 Python
Django def clean()函数对表单中的数据进行验证操作
Jul 09 Python
Python高阶函数与装饰器函数的深入讲解
Nov 10 Python
Python新建项目自动添加介绍和utf-8编码的方法
Dec 26 Python
Python爬虫基础之爬虫的分类知识总结
May 13 Python
Python趣味挑战之用pygame实现简单的金币旋转效果
May 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
成本8450万,票房仅2亿,口碑两极分化,又一部DC电影扑街了
2020/04/09 欧美动漫
基于mysql的论坛(5)
2006/10/09 PHP
php set_magic_quotes_runtime() 函数过时解决方法
2010/07/08 PHP
PHP 截取字符串专题集合
2010/08/19 PHP
PHP下通过file_get_contents的代理使用方法
2011/02/16 PHP
Nginx下配置codeigniter框架方法
2015/04/07 PHP
Linux下 php7安装redis的方法
2018/11/01 PHP
PHP递归的三种常用方式
2019/02/28 PHP
使用PHPWord生成word文档的方法详解
2019/06/06 PHP
使用laravel的migrate创建数据表的方法
2019/09/30 PHP
Laravel ORM 数据model操作教程
2019/10/21 PHP
用js判断浏览器是否是IE的比较好的办法
2007/05/08 Javascript
js 颜色选择器(兼容firefox)
2009/03/05 Javascript
如何使Chrome控制台支持多行js模式——意外发现
2013/06/13 Javascript
将数字转换成大写的人民币表达式的js函数
2014/09/21 Javascript
JS实现浏览器状态栏文字闪烁效果的方法
2015/10/27 Javascript
JavaScript程序中实现继承特性的方式总结
2016/06/24 Javascript
jquery实现界面无刷新加载登陆注册
2016/07/30 Javascript
JavaScript中动态向表格添加数据
2017/01/24 Javascript
react-native使用react-navigation进行页面跳转导航的示例
2017/09/07 Javascript
JavaScript如何获取到导航条中HTTP信息
2017/10/10 Javascript
vue-cli脚手架的安装教程图解
2018/09/02 Javascript
js canvas实现5张图片合成一张图片
2019/07/15 Javascript
nodejs实现百度舆情接口应用示例
2020/02/07 NodeJs
JS面试题中深拷贝的实现讲解
2020/05/07 Javascript
使用js和canvas实现时钟效果
2020/09/08 Javascript
python中模块的__all__属性详解
2017/10/26 Python
python kmeans聚类简单介绍和实现代码
2018/02/23 Python
使用python对文件中的单词进行提取的方法示例
2018/12/21 Python
Python3实现定时任务的四种方式
2019/06/03 Python
Python定时从Mysql提取数据存入Redis的实现
2020/05/03 Python
CSS3的column-fill属性对齐列内容高度的用法详解
2016/07/01 HTML / CSS
英国在线药房:Chemist.co.uk
2019/03/26 全球购物
国际语言毕业生求职信
2014/07/08 职场文书
初中国旗下的演讲稿
2014/08/28 职场文书
VMware虚拟机安装 Windows Server 2022的详细图文教程
2022/09/23 Servers