码迷,mamicode.com
首页 > 编程语言 > 详细

Python 正则表达式 补充

时间:2018-09-02 17:18:23      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:开发   dem   demo   贪婪模式   情况   print   爬虫   font   content   

cuiqingcai大佬《Python3 网络爬虫开发实战》整理

贪婪与非贪婪

import re

content = Hello 12345678 Word_This is a Regex Demo

result = re.match(^He.*(\d+).*Demo$, content)

print(result.group(1))

原本打算取出12345678,

运行结果:8

贪婪匹配模式:.* 会匹配尽可能多的字符。

.*后(\d+)至少匹配一个数字,未指定具体数字。因此,.*尽可能匹配多的字符,把1234567匹配,给\d+留下一个仅满足条件的结果8。

so,最后结果就至于8了。

 

非贪婪模式匹配:.*?  尽可能匹配少的字符,余下交给后面的去匹配。

在.*后加一个?

import re

content = Hello 12345678 World_This is a Regex Demo

result = re.match(^He.*?(\d+).*Demo$, content)

print(result.group(1))

运行结果:12345678

 所以,匹配时,字符中间尽量用非贪婪匹配,以免出现匹配结果确实的情况。若是匹配结果在字符串结果,.*?有可能匹配不到任何内容,因为它会匹配尽可能少的字符。

import re

content = http://weibo.com/comment/kEraCN

result1 = re.match(^h.*?comment/(.*?), content)

result2 = re.match(^h.*?comment/(.*), content)

print(result1, result1.group(1))

print(result2, result2.group(2))

 

 

 

Python 正则表达式 补充

标签:开发   dem   demo   贪婪模式   情况   print   爬虫   font   content   

原文地址:https://www.cnblogs.com/hyeTi/p/9568897.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!