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 数据处理库 pandas进阶教程
Apr 21 Python
python制作mysql数据迁移脚本
Jan 01 Python
详解从Django Rest Framework响应中删除空字段
Jan 11 Python
selenium+python自动化测试之多窗口切换
Jan 23 Python
说说如何遍历Python列表的方法示例
Feb 11 Python
PyQt5 实现给窗口设置背景图片的方法
Jun 13 Python
python 实现快速生成连续、随机字母列表
Nov 28 Python
Pytorch上下采样函数--interpolate用法
Jul 07 Python
详解python tcp编程
Aug 24 Python
一文带你了解Python 四种常见基础爬虫方法介绍
Dec 04 Python
pytorch实现线性回归以及多元回归
Apr 11 Python
方法汇总:Python 安装第三方库常用
Apr 26 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 array_merge_recursive 数组合并
2016/10/26 PHP
Yii2框架视图(View)操作及Layout的使用方法分析
2019/05/27 PHP
jquery教程限制文本框只能输入数字和小数点示例分享
2014/01/13 Javascript
javascript版的in_array函数(判断数组中是否存在特定值)
2014/05/09 Javascript
鼠标左键单击冲突的问题解决方法(防止冒泡)
2014/05/14 Javascript
Javascript中的getUTCHours()方法使用详解
2015/06/10 Javascript
javascript实现框架高度随内容改变的方法
2015/07/23 Javascript
Javascript之BOM(window对象)详解
2016/05/25 Javascript
JavaScript 闭包详细介绍
2016/09/28 Javascript
bootstrap组件之导航组件使用方法
2017/01/19 Javascript
Bootstrap输入框组件使用详解
2017/06/09 Javascript
JS验证码实现代码
2017/09/14 Javascript
node通过express搭建自己的服务器
2017/09/30 Javascript
Javascript实现购物车功能的详细代码
2018/05/08 Javascript
详解vue-cli3多环境打包配置
2019/03/28 Javascript
微信小程序入门之指南针
2020/10/22 Javascript
[01:17:55]VGJ.T vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/20 DOTA
python fabric实现远程操作和部署示例
2014/03/25 Python
Python的批量远程管理和部署工具Fabric用法实例
2015/01/23 Python
Python的Django中django-userena组件的简单使用教程
2015/05/30 Python
今天 平安夜 Python 送你一顶圣诞帽 @微信官方
2017/12/25 Python
Python数据集切分实例
2018/12/08 Python
PyCharm在新窗口打开项目的方法
2019/01/17 Python
Python实现KNN(K-近邻)算法的示例代码
2019/03/05 Python
python实现最大优先队列
2019/08/29 Python
python3利用Axes3D库画3D模型图
2020/03/25 Python
python如何将图片转换素描画
2020/09/08 Python
Python求区间正整数内所有素数之和的方法实例
2020/10/13 Python
突袭HTML5之Javascript API扩展2—地理信息服务及地理位置API学习
2013/01/31 HTML / CSS
日本必酷网络直营店:Biccamera
2019/03/23 全球购物
会计专业推荐信
2013/10/29 职场文书
科长竞争上岗演讲稿
2014/05/12 职场文书
个人自我剖析材料
2014/09/30 职场文书
用人单位聘用意向书
2015/05/11 职场文书
nginx反向代理时如何保持长连接
2021/03/31 Servers
JS实现简单九宫格抽奖
2022/06/28 Javascript