关于Python正则re中的(.*?)
2016-04-12 20:02
357 查看
首先来看看他们的基本含义:
点
星
问号
(md一直不明白水印为什么不是我的主页而是csdn的主页)
正则表达式通常用于在文本中查找匹配的字符串。Python里数量词默认是贪婪的(在少数语言里也可能是默认非贪婪),总是尝试匹配尽可能多的字符;非贪婪的则相反,总是尝试匹配尽可能少的字符。例如:正则表达式"ab*"如果用于查找"abbbc",将找到"abbb"。而如果使用非贪婪的数量词"ab*?",将找到"a"。
所以?的第二个含义,就是作为正则的懒惰模式。
对于:
(abc)dfe(gh)
对上面这个字符串使用(.*)将会匹配整个字符串,因为正则默认是尽可能多的匹配。
虽然(abc)满足我们的表达式,但是(abc)dfe(gh)也同样满足,所以正则会匹配多的那个。
如果我们只想匹配(abc)和(gh)就需要用到以下的表达式
(.*?)
在重复元字符*或者+等等后面跟一个?,作用就是在满足的条件下尽可能少匹配。
点
星
问号
(md一直不明白水印为什么不是我的主页而是csdn的主页)
正则表达式通常用于在文本中查找匹配的字符串。Python里数量词默认是贪婪的(在少数语言里也可能是默认非贪婪),总是尝试匹配尽可能多的字符;非贪婪的则相反,总是尝试匹配尽可能少的字符。例如:正则表达式"ab*"如果用于查找"abbbc",将找到"abbb"。而如果使用非贪婪的数量词"ab*?",将找到"a"。
所以?的第二个含义,就是作为正则的懒惰模式。
对于:
(abc)dfe(gh)
对上面这个字符串使用(.*)将会匹配整个字符串,因为正则默认是尽可能多的匹配。
虽然(abc)满足我们的表达式,但是(abc)dfe(gh)也同样满足,所以正则会匹配多的那个。
如果我们只想匹配(abc)和(gh)就需要用到以下的表达式
(.*?)
在重复元字符*或者+等等后面跟一个?,作用就是在满足的条件下尽可能少匹配。
相关文章推荐
- Ubuntu下配置舒服的Python开发环境
- Python 序列化pickle/cPickle模块整理
- python main函数
- 使用python3自带工具2to3.py 转换 python2.x 代码 到python3
- Python 中的位置参数和关键字参数分析
- python解析excel
- Python 优雅的操作字典
- python数据转换
- python数据分析中出现的奇怪的bug
- pythonseleniumAPI
- python实现简单爬虫
- 快速入门:十分钟学会Python
- 老鸟的Python入门教程
- Python工具:保留小数的指定有效位数
- 未来两年我们即将要读的Python书!
- python学习10-文件处理
- 初学python(对比java语言不同) 第八篇
- 【python小练】0014题 和 0015 题
- python版恶俗古风自动生成器.py
- Python 文件/文件夹操作(读写read/write、复制copy、删除delete、重命名rename)