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实现备份文件实例
Sep 16 Python
Python读写Excel文件方法介绍
Nov 22 Python
解析Python中while true的使用
Oct 13 Python
分享一个可以生成各种进制格式IP的小工具实例代码
Jul 28 Python
Python基于pycrypto实现的AES加密和解密算法示例
Apr 10 Python
Python自动发送邮件的方法实例总结
Dec 08 Python
python3.6 如何将list存入txt后再读出list的方法
Jul 02 Python
python xlwt如何设置单元格的自定义背景颜色
Sep 03 Python
python实现拉普拉斯特征图降维示例
Nov 25 Python
Python文件操作函数用法实例详解
Dec 24 Python
python实现图像外边界跟踪操作
Jul 13 Python
Python Pillow(PIL)库的用法详解
Sep 19 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 采集程序中常用的函数
2009/12/09 PHP
php 中文和编码判断代码
2010/05/16 PHP
ajax+php实现无刷新验证手机号的实例
2017/12/22 PHP
PHP基于面向对象实现的留言本功能实例
2018/04/04 PHP
javascript实现unicode和字符的互相转换
2007/07/18 Javascript
jQuery中的编程范式详解
2014/12/15 Javascript
javascript的日期对象、数组对象、二维数组使用说明
2014/12/22 Javascript
Javascript数组操作函数总结
2015/02/05 Javascript
JavaScript中的toUTCString()方法使用详解
2015/06/12 Javascript
延时加载JavaScript代码提高速度
2015/12/27 Javascript
JavaScript获取图片像素颜色并转换为box-shadow显示
2016/03/11 Javascript
用NodeJS实现批量查询地理位置的经纬度接口
2016/08/16 NodeJs
微信小程序实现折叠与展开文章功能
2018/06/12 Javascript
php中and 和 &&出坑指南
2018/07/13 Javascript
对vue中methods互相调用的方法详解
2018/08/30 Javascript
解决vue同一slot在组件中渲染多次的问题
2018/09/06 Javascript
vue 地图可视化 maptalks 篇实例代码详解
2019/05/21 Javascript
layui加载表格,绑定新增,编辑删除,查看按钮事件的例子
2019/09/06 Javascript
基于node+websocket+html实现腾讯课堂聊天室聊天功能
2020/03/04 Javascript
vant 解决tab切换插件标题样式自定义的问题
2020/11/13 Javascript
python实现dict版图遍历示例
2014/02/19 Python
Python实现的快速排序算法详解
2017/08/01 Python
Python地图绘制实操详解
2019/03/04 Python
python获取指定日期范围内的每一天,每个月,每季度的方法
2019/08/08 Python
Python lambda表达式filter、map、reduce函数用法解析
2019/09/11 Python
Django框架创建项目的方法入门教程
2019/11/04 Python
python实现两个一维列表合并成一个二维列表
2019/12/02 Python
python多项式拟合之np.polyfit 和 np.polyld详解
2020/02/18 Python
python实现人脸签到系统
2020/04/13 Python
Python优秀开源项目Rich源码解析的流程分析
2020/07/06 Python
Django rest framework分页接口实现原理解析
2020/08/21 Python
html5 figure和figcaption的使用方法
2018/09/10 HTML / CSS
美国转售二手商品的电子商务平台:BLINQ
2018/12/13 全球购物
彪马日本官网:PUMA日本
2019/01/31 全球购物
黑猩猩商店:The Chimp Store
2020/02/12 全球购物
小鞋子观后感
2015/06/05 职场文书