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 相关文章推荐
用map函数来完成Python并行任务的简单示例
Apr 02 Python
python数组复制拷贝的实现方法
Jun 09 Python
python装饰器初探(推荐)
Jul 21 Python
Python3安装Scrapy的方法步骤
Nov 23 Python
python3.5基于TCP实现文件传输
Mar 20 Python
利用Python实现手机短信监控通知的方法
Jul 22 Python
Python爬虫 urllib2的使用方法详解
Sep 23 Python
python实现提取COCO,VOC数据集中特定的类
Mar 10 Python
Django ValuesQuerySet转json方式
Mar 16 Python
python 下划线的不同用法
Oct 24 Python
Python实现淘宝秒杀功能的示例代码
Jan 19 Python
python 闭包函数详细介绍
Apr 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
浅析51个PHP处理字符串的函数
2013/08/02 PHP
ThinkPHP使用smarty模板引擎的方法
2014/07/01 PHP
php curl登陆qq后获取用户信息时证书错误
2015/02/03 PHP
js代码实现微博导航栏
2015/07/30 PHP
PHP生成随机密码4种方法及性能对比
2020/12/11 PHP
Mootools 1.2教程 定时器和哈希简介
2009/09/15 Javascript
javascript之querySelector和querySelectorAll使用介绍
2011/12/20 Javascript
javascript ajax 仿百度分页函数
2013/10/29 Javascript
如何让你的Lightbox支持滚轮缩放及Base64图片
2014/12/04 Javascript
jQuery中DOM树操作之使用反向插入方法实例分析
2015/01/23 Javascript
JavaScript中模拟实现jsonp
2015/06/19 Javascript
纯javascript实现分页(两种方法)
2015/08/26 Javascript
JavaScript代码因逗号不规范导致IE不兼容的问题
2016/02/25 Javascript
解决node.js安装包失败的几种方法
2016/09/02 Javascript
json定义及jquery操作json的方法
2016/09/29 Javascript
Angular实现图片裁剪工具ngImgCrop实践
2017/08/17 Javascript
NodeJS设计模式总结【单例模式,适配器模式,装饰模式,观察者模式】
2017/09/06 NodeJs
js动态设置select下拉菜单的默认选中项实例
2018/08/21 Javascript
vue实现的树形结构加多选框示例
2019/02/02 Javascript
Nodejs实现用户注册功能
2019/04/14 NodeJs
VUE 组件转换为微信小程序组件的方法
2019/11/06 Javascript
vue-router 按需加载 component: () => import() 报错的解决
2020/09/22 Javascript
[03:30]DOTA2完美“圣”典精彩集锦
2016/12/27 DOTA
python如何实现远程控制电脑(结合微信)
2015/12/21 Python
在Windows中设置Python环境变量的实例讲解
2018/04/28 Python
Pandas:Series和DataFrame删除指定轴上数据的方法
2018/11/10 Python
pyqt5中动画的使用详解
2020/04/01 Python
ABOUT YOU匈牙利:500个最受欢迎的时尚品牌
2019/07/19 全球购物
怎样建立和理解非常复杂的声明?例如定义一个包含N 个指向返回 指向字符的指针的函数的指针的数组?
2013/03/19 面试题
办公室主任职责范本
2014/03/07 职场文书
职业生涯规划书前言
2014/04/15 职场文书
水电站项目建议书
2014/05/12 职场文书
社区综治宣传月活动总结
2014/07/02 职场文书
后天观后感
2015/06/08 职场文书
python在package下继续嵌套一个package
2022/04/14 Python
浅谈css清除浮动(clearfix和clear)的用法
2023/05/21 HTML / CSS