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基于pyDes库实现des加密的方法
Apr 29 Python
Python 处理数据的实例详解
Aug 10 Python
python实现简单登陆流程的方法
Apr 22 Python
pytorch permute维度转换方法
Dec 14 Python
Python实现蒙特卡洛算法小实验过程详解
Jul 12 Python
Python常用数据类型之间的转换总结
Sep 06 Python
python使用协程实现并发操作的方法详解
Dec 27 Python
Python日期格式和字符串格式相互转换的方法
Feb 18 Python
Pytorch 高效使用GPU的操作
Jun 27 Python
Python selenium模块实现定位过程解析
Jul 09 Python
Django模型验证器介绍与源码分析
Sep 08 Python
python 带时区的日期格式化操作
Oct 23 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实现mysql数据库备份类
2008/03/20 PHP
那些年一起学习的PHP(二)
2012/03/21 PHP
关于Zend Studio 配色方案插件的介绍
2013/06/24 PHP
PHP+iframe图片上传实现即时刷新效果
2016/11/18 PHP
PHP swoole和redis异步任务实现方法分析
2019/08/12 PHP
学习ExtJS 访问容器对象
2009/10/07 Javascript
javascript 多浏览器 事件大全
2010/03/23 Javascript
jquery 插件开发备注
2010/08/27 Javascript
httpclient模拟登陆具体实现(使用js设置cookie)
2013/12/11 Javascript
javascript制作loading动画效果 loading效果
2014/01/14 Javascript
javascript在当前窗口关闭前检测窗口是否关闭
2014/09/29 Javascript
js函数内变量的作用域分析
2015/01/12 Javascript
Javascript验证Visa和MasterCard信用卡号的方法
2015/07/27 Javascript
javascript表单验证大全
2015/08/12 Javascript
jquery按回车键实现表单提交的简单实例
2016/05/25 Javascript
jquery插件uploadify多图上传功能实现代码
2016/08/12 Javascript
webpack配置的最佳实践分享
2017/04/21 Javascript
JS 设置Cookie 有效期 检测cookie
2017/06/15 Javascript
jquery实现倒计时小应用
2017/09/19 jQuery
jq源码解析之绑在$,jQuery上面的方法(实例讲解)
2017/10/13 jQuery
Node实战之不同环境下配置文件使用教程
2018/01/02 Javascript
vue2.0实现的tab标签切换效果(内容可自定义)示例
2019/02/11 Javascript
ES6 Generator函数的应用实例分析
2019/06/26 Javascript
vue中的过滤器及其时间格式化问题
2020/04/09 Javascript
[01:04:01]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS DT第一场
2014/05/24 DOTA
深入理解Python单元测试unittest的使用示例
2017/11/18 Python
python分块读取大数据,避免内存不足的方法
2018/12/10 Python
python 爬取小说并下载的示例
2020/12/07 Python
CPB肌肤之钥美国官网:Clé de Peau Beauté
2017/09/05 全球购物
Java的接口和C++的虚类的相同和不同处
2014/03/27 面试题
商场中秋节活动方案
2014/02/07 职场文书
公司成本主管岗位责任制
2014/02/21 职场文书
拾金不昧表扬稿大全
2015/05/05 职场文书
演讲开场白台词大全
2015/05/29 职场文书
中学生国庆节演讲稿2015
2015/07/30 职场文书
一道JS算法面试题——冒泡、选择排序
2021/04/21 Javascript