Python正则表达式:最短匹配
2016-10-23 00:00
555 查看
最短匹配应用于:假如有一段文本,你只想匹配最短的可能,而不是最长。
但是在*操作符后面加上?操作符,这样使得匹配变成非贪婪模式,从而得到最短匹配。
例子
比如有一段html片段,'<a>this is first label</a><a>the second label</a>',如何匹配出每个a标签中的内容,下面来看下最短与最长的区别。代码
>>> import re >>> str = '<a>this is first label</a><a>the second label</a>' >>> print re.findall(r'<a>(.*?)</a>', str) # 最短匹配 ['this is first label', 'the second label'] >>> print re.findall(r'<a>(.*)</a>', str) ['this is first label</a><a>the second label']
解释
例子中,模式r'<a>(.*?)</a>'的意图是匹配被<a>和</a>包含的文本,但是正则表达式中*操作符是贪婪的,因此匹配操作会查找出最长的可能。但是在*操作符后面加上?操作符,这样使得匹配变成非贪婪模式,从而得到最短匹配。
相关文章推荐
- python非贪婪、多行匹配正则表达式例子[转载]
- Python正则表达式的几种匹配用法
- [转]Python正则表达式中匹配GBK/UTF-8编码中文字符_绝冬之地_百度空间
- Python 正则表达式(模式匹配)
- 用python做含有中文的正则表达式模式匹配
- python正则表达式匹配sql语句中的表名
- Python:正则表达式匹配任意字符(包括换行符)的写法
- 转载:Python正则表达式的用法(1. 匹配)
- 匹配图像标签的正则表达式(Javascript和Python版)
- python 正则表达式:匹配字符串开头并打印
- Python中的正则表达式匹配中文问题
- python类库31[正则表达式匹配实例]
- PyCon 2011 - Hidden Treasures of the Python Standard Library - 邮件地址正则表达式匹配
- 正则表达式实例总结-------最短匹配
- Python正则表达式的常用匹配用法
- python 正则表达式匹配中文
- Python正则表达式的几种匹配用法
- 正则表达式的最短匹配
- Python 正则表达式(模式匹配)
- 正则表达式最短匹配