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

Python中的re.search和re.findall之间的区别

时间:2015-07-26 19:18:16      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:python   re.findall   re.search   

参考博客:http://www.crifan.com/python_re_search_vs_re_findall/

在这里,我想说一下我目前遇到的问题

这是一个本地的文件 text.txt

<html>
  <head>
    <title>极客学院爬虫测试</title>
  </head>
  <body>
    <div class="topic"><a href="http://jikexueyuan.com/welcome.html">欢迎参加《Python定向爬虫入门课程》</a>
      <div class="list">
        <ul>
          <li><a href="http://jikexueyuan.com/1.html">这是第一条</a></li>
          <li><a href="http://jikexueyuan.com/2.html">这是第二条</a></li>
          <li><a href="http://jikexueyuan.com/3.html">这是第三条</a></li>
        </ul>
      </div>
    </div>
  </body>
</html>
当我用re.findall()来获取它的文本内容,即
 <li><a href="http://jikexueyuan.com/1.html">这是第一条</a></li>
中<a>标签直接的内容时,用了如下代码,采用先打后小原则:
<pre name="code" class="python">text_field = re.findall('<ul>(.*?)</ul>',html,re.S)
text = re.findall(‘">(.*?)</a></li>‘,text_field,re.S)for each in text: print each


应该没问题的,但是报了这样的错

技术分享

很无解,后来尝试了

1.

text_field = re.findall('<ul>(.*?)</ul>',html,re.S)[0]
2.
text_field = re.search('<ul>(.*?)</ul>',html,re.S).group(1)<pre style="font-family: Consolas; font-size: 10.5pt; background-color: rgb(255, 255, 255);">这两种方式都正确


技术分享

但是我并不懂。后来看到开头那篇博客的最后提到的,我很有同感。此时,我猜想,当findall得到的元素是一个元组,但是这个元组仅有一个时,需要像search那样给定位置。

但是现在我不知道具体是什么情况时要这样写。希望哪位大神不吝赐教!


版权声明:本文为博主原创文章,未经博主允许不得转载。

Python中的re.search和re.findall之间的区别

标签:python   re.findall   re.search   

原文地址:http://blog.csdn.net/taoshengyijiuzt/article/details/47069669

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