正则表达式实例(.*?)
2017-10-12 14:44
253 查看
正则表达式实例:
#!/usr/bin/python import re line = "Cats are smarter than dogs" matchObj = re.match( r'(.*) are (.*?) .*', line, re.M|re.I) if matchObj: print "matchObj.group() : ", matchObj.group() print "matchObj.group(1) : ", matchObj.group(1) print "matchObj.group(2) : ", matchObj.group(2) else: print "No match!!"
正则表达式:
r'(.*) are (.*?) .*'
解析:
首先,这是一个字符串,前面的一个 r 表示字符串为非转义的原始字符串,让编译器忽略反斜杠,也就是忽略转义字符。但是这个字符串里没有反斜杠,所以这个 r 可有可无。
(.*) 第一个匹配分组,.* 代表匹配除换行符之外的所有字符。
(.*?) 第二个匹配分组,.*? 后面多个问号,代表非贪婪模式,也就是说只匹配符合条件的最少字符
后面的一个 .* 没有括号包围,所以不是分组,匹配效果和第一个一样,但是不计入匹配结果中。
matchObj.group() 等同于 matchObj.group(0),表示匹配到的完整文本字符
matchObj.group(1) 得到第一组匹配结果,也就是(.*)匹配到的
matchObj.group(2) 得到第二组匹配结果,也就是(.*?)匹配到的
因为只有匹配结果中只有两组,所以如果填 3 时会报错。
相关文章推荐
- 正则表达式之零宽断言实例详解【基于PHP】
- 正则表达式分组实例以及正则贪婪
- 正则表达式中的正向预查和负向预查实例分析
- 正则表达式及实例
- 正则表达式简单实例
- (转)PHP:看实例学正则表达式
- 正则表达式 UBB 实例
- PHP编程技巧:看实例学正则表达式
- 正则表达式在javascript中的几个实例1(转)
- 正则表达式在javascript中的几个实例
- 正则表达式攻击实例 Regular Expressions Denial of Service
- 正则表达式亲身实例
- 正则表达式实例(JS验证)
- Java正则表达式工具类实例
- 正则表达式(基础+实例)
- 正则表达式。部分实例及说明(摘)
- 正则表达式实例
- 正则表达式基础实例
- 正则表达式15个常用实例
- PHP编程技巧:看实例学正则表达式