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本地与全局命名空间用法实例
Jun 16 Python
在Python的Django框架中生成CSV文件的方法
Jul 22 Python
python制作企业邮箱的爆破脚本
Oct 05 Python
python 3利用BeautifulSoup抓取div标签的方法示例
May 28 Python
Scrapy使用的基本流程与实例讲解
Oct 21 Python
scrapy-redis的安装部署步骤讲解
Feb 27 Python
pandas删除指定行详解
Apr 04 Python
如何用Python破解wifi密码过程详解
Jul 12 Python
python使用opencv实现马赛克效果示例
Sep 28 Python
Python连接mysql数据库及简单增删改查操作示例代码
Aug 03 Python
Python实现Excel自动分组合并单元格
Feb 22 Python
python链表类中获取元素实例方法
Feb 23 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设置session值和cookies的学习示例
2014/03/21 PHP
使用PHP生成图片的缩略图的方法
2015/08/18 PHP
让你的PHP7更快之Hugepage用法分析
2016/05/31 PHP
YII2自动登录Cookie总是失效的解决方法
2017/06/28 PHP
详解Yaf框架PHPUnit集成测试方法
2017/12/27 PHP
PHP递归统计系统中代码行数
2019/09/19 PHP
Laravel 解决composer相关操作提示php相关异常的问题
2019/10/23 PHP
laravel 执行迁移回滚示例
2019/10/23 PHP
jQuery Ajax之load()方法
2009/10/12 Javascript
JavaScript网页定位详解
2014/01/13 Javascript
js函数名与form表单元素同名冲突的问题
2014/03/07 Javascript
jquery中的工具使用方法$.isFunction, $.isArray(), $.isWindow()
2015/08/09 Javascript
jQuery实现批量判断表单中文本框非空的方法(2种方法)
2015/12/09 Javascript
基于javascript实现仿百度输入框自动匹配功能
2016/01/03 Javascript
js+css3实现旋转效果
2017/01/20 Javascript
基于jQuery的左滑出现删除按钮的示例
2017/08/29 jQuery
对Vue beforeRouteEnter 的next执行时机详解
2018/08/25 Javascript
详解基于electron制作一个node压缩图片的桌面应用
2019/01/29 Javascript
更强大的vue ssr实现预取数据的方式
2019/07/19 Javascript
vue 根据选择条件显示指定参数的例子
2019/11/09 Javascript
如何通过Proxy实现JSBridge模块化封装
2020/10/22 Javascript
js闭包的9个使用场景
2020/12/29 Javascript
gearman的安装启动及python API使用实例
2014/07/08 Python
python正则表达式之作业计算器
2016/03/18 Python
使用Python的Django和layim实现即时通讯的方法
2018/05/25 Python
解决python 虚拟环境删除包无法加载的问题
2020/07/13 Python
推荐值得学习的12款python-web开发框架
2020/08/10 Python
HTML5 通信API 跨域门槛将不再高、数据推送也不再是梦
2013/04/25 HTML / CSS
日本著名的平价时尚女性购物网站:Fifth
2016/08/24 全球购物
Yves Rocher伊夫·黎雪美国官网:法国始创植物美肌1959
2019/01/09 全球购物
JBL美国官方商店:扬声器、耳机等
2019/12/01 全球购物
大学生职业生涯规划书模板
2014/01/18 职场文书
优秀士兵个人事迹材料
2014/01/19 职场文书
大学生干部培训心得体会
2016/01/06 职场文书
初中信息技术教学反思
2016/02/16 职场文书
Windows Server 版本 20H2 于 8 月 9 日停止支持,Win10 版本 21H1 将于 12 月结束支
2022/07/23 数码科技