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 相关文章推荐
py中的目录与文件判别代码
Jul 16 Python
python输出当前目录下index.html文件路径的方法
Apr 28 Python
理解Python垃圾回收机制
Feb 12 Python
Python中列表和元组的使用方法和区别详解
Dec 30 Python
Python设计模式之抽象工厂模式
Aug 25 Python
Python使用装饰器模拟用户登陆验证功能示例
Aug 24 Python
Python求两个圆的交点坐标或三个圆的交点坐标方法
Nov 07 Python
python全栈要学什么 python全栈学习路线
Jun 28 Python
Django 多表关联 存储 使用方法详解 ManyToManyField save
Aug 09 Python
python使用sessions模拟登录淘宝的方式
Aug 16 Python
Python基础之变量基本用法与进阶详解
Jan 03 Python
Python命名空间namespace及作用域原理解析
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
一些常用的php简单命令代码集锦
2007/09/24 PHP
CodeIgniter php mvc框架 中国网站
2008/05/26 PHP
php数组的概述及分类与声明代码演示
2013/02/26 PHP
PHP彩蛋信息介绍和阻止泄漏的方法(隐藏功能)
2014/08/06 PHP
php实现的返回数据格式化类实例
2014/09/22 PHP
JavaScript游戏之优化篇
2010/11/08 Javascript
基于JQUERY的多级联动代码
2012/01/24 Javascript
php is_numberic函数造成的SQL注入漏洞
2014/03/10 Javascript
JS中判断null、undefined与NaN的方法
2014/03/24 Javascript
jQuery实现带延迟的二级tab切换下拉列表效果
2015/09/01 Javascript
jQuery实现的经典滑动门效果
2015/09/22 Javascript
13个PHP函数超实用
2015/10/21 Javascript
javascript结合Flexbox简单实现滑动拼图游戏
2016/02/18 Javascript
javascript拖拽应用实例(二)
2016/03/25 Javascript
js实现为a标签添加事件的方法(使用闭包循环)
2016/08/02 Javascript
DOM操作原生js 的bug,使用jQuery 可以消除的解决方法
2016/09/04 Javascript
浅谈js常用内置方法和对象
2016/09/24 Javascript
Vue+webpack实现懒加载过程解析
2020/02/17 Javascript
Python实现批量把SVG格式转成png、pdf格式的代码分享
2014/08/21 Python
Python使用xlrd模块操作Excel数据导入的方法
2015/05/26 Python
python计算一个序列的平均值的方法
2015/07/11 Python
实例讲解Python的函数闭包使用中应注意的问题
2016/06/20 Python
python爬虫实例详解
2018/06/19 Python
python 实现UTC时间加减的方法
2018/12/31 Python
Python3解释器知识点总结
2019/02/19 Python
django-利用session机制实现唯一登录的例子
2020/03/16 Python
采用专利算法搜索最廉价的机票:CheapAir
2016/09/10 全球购物
如何查询Oracle数据库中已经创建的索引
2013/10/11 面试题
优秀员工自荐书
2013/12/19 职场文书
小露珠教学反思
2014/04/30 职场文书
机动车登记业务委托书
2014/10/08 职场文书
学校师德师风整改措施
2014/10/27 职场文书
优秀学生干部事迹材料
2014/12/24 职场文书
优秀党员主要事迹材料
2015/11/04 职场文书
前端学习——JavaScript原生实现购物车案例
2021/03/31 Javascript
漫画「处刑少女的生存之道」第3卷封面公开
2022/03/21 日漫