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抓取网页内容示例分享
Feb 24 Python
pycharm 使用心得(三)Hello world!
Jun 05 Python
python中引用与复制用法实例分析
Jun 04 Python
Python Grid使用和布局详解
Jun 30 Python
Linux 修改Python命令的方法示例
Dec 03 Python
Python测试模块doctest使用解析
Aug 10 Python
python实现飞机大战小游戏
Nov 08 Python
python 遍历pd.Series的index和value
Nov 26 Python
pytorch AvgPool2d函数使用详解
Jan 03 Python
python使用QQ邮箱实现自动发送邮件
Jun 22 Python
django filter过滤器实现显示某个类型指定字段不同值方式
Jul 16 Python
基于Python组装jmx并调用JMeter实现压力测试
Nov 03 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
默默简单的写了一个模板引擎
2007/01/02 PHP
php数组应用之比较两个时间的相减排序
2008/08/18 PHP
PHP+redis实现微博的拉模型案例详解
2019/07/10 PHP
Yii框架的redis命令使用方法简单示例
2019/10/15 PHP
动态加载js文件 document.createElement
2006/10/14 Javascript
JQuery 引发两次$(document.ready)事件
2010/01/15 Javascript
jQuery 打造动态渐变按钮 详细图文教程
2010/04/25 Javascript
禁止选中文字兼容IE、Chrome、FF等
2013/09/04 Javascript
jqueryUI里拖拽排序示例分析
2015/02/26 Javascript
举例详解Python中smtplib模块处理电子邮件的使用
2015/06/24 Javascript
jQuery自制提示框tooltip改进版
2016/08/01 Javascript
js简单获取表单中单选按钮值的方法
2016/08/23 Javascript
NodeJS实现图片上传代码(Express)
2017/06/30 NodeJs
详解Vue源码学习之callHook钩子函数
2018/07/25 Javascript
解决vue.js this.$router.push无效的问题
2018/09/03 Javascript
JavaScript静态作用域和动态作用域实例详解
2019/06/17 Javascript
解决vue项目运行提示Warnings while compiling.警告的问题
2020/09/18 Javascript
nodejs中的异步编程知识点详解
2021/01/17 NodeJs
[02:23]2014DOTA2国际邀请赛中国战队回顾
2014/08/01 DOTA
Python实现监控程序执行时间并将其写入日志的方法
2015/06/30 Python
Python连接phoenix的方法示例
2017/09/29 Python
Python 装饰器原理、定义与用法详解
2019/12/07 Python
Django 删除upload_to文件的步骤
2020/03/30 Python
Tensorflow中的图(tf.Graph)和会话(tf.Session)的实现
2020/04/22 Python
python进行二次方程式计算的实例讲解
2020/12/06 Python
欧洲最大的化妆品连锁公司:Douglas道格拉斯
2017/05/06 全球购物
Ray-Ban雷朋奥地利官网:全球领先的太阳眼镜品牌
2020/10/12 全球购物
总经理岗位职责描述
2014/02/08 职场文书
基层党员公开承诺书
2014/05/29 职场文书
2014年国庆标语
2014/06/30 职场文书
走群众路线学习心得体会
2014/10/31 职场文书
2014年评职称工作总结
2014/11/20 职场文书
介绍信格式样本
2015/05/05 职场文书
欠款证明
2015/06/24 职场文书
学法用法心得体会(2016推荐篇)
2016/01/21 职场文书
Win11 Dev 预览版25174.1000发布 (附更新修复内容汇总)
2022/08/05 数码科技