Python 正则表达式尽可能小的匹配(遇到第一个结束字符串就停止匹配)

在写爬虫爬网页的时候,经常需要爬取里面的一大块代码,比如:

<div>………………………………</div></div></div></div>

我们需要省略号里面的代码块,如果我们用“*”、“+”就会尽可能多的匹配,就会匹配到最后一个</div>。为了实现我们的需求,我们需要尽可能小的匹配,遇到第一个合适的结束字符就返回。
看下面的例子,就会很快明白了

 

a = ‘d5./;.sdf jk56jfs./jfis54′

b = re.search(r'(.*)f’,a)

print b.group(1)

返回的结果是 “d5./;.sdf jk56jfs./j”

 

我们为了遇到一个f就返回,而不是最后一个f才返回,只需要在‘*’后加个”?”,如下面的代码

a = ‘d5./;.sdf jk56jfs./jfis54′

b = re.search(r'(.*?)f’,a)

print b.group(1)

返回的结果是 “d5./;.sd”

15 comments
    • 均益
      均益 • Post Author •
      2016年10月25日 at 下午12:03

      这个是正则表达式,在写爬虫的时候,经常需要用到的

    • 均益
      均益 • Post Author •
      2016年10月25日 at 下午12:04

      现在不会技术的seo不太好搞啊

    • 均益
      均益 • Post Author •
      2016年8月23日 at 上午11:02

      你网站好像访问不了哦

    • 均益
      均益 • Post Author •
      2016年8月23日 at 上午11:02

      python的作用很大的,今年看了一下编程语言排行榜,python已经超越了php了

        • 均益
          均益 • Post Author •
          2016年8月24日 at 上午12:01

          python一般用于大数据的处理,也用于web开发的,是否可开发独立客户端就不清楚了,有兴趣你可以多了解一下。我用python主要是做爬虫和数据处理的。

          • 均益
            均益 • Post Author •
            2016年8月25日 at 下午6:37

            我也是做seo的,后来发现seo不会点技术真的不行啊。做seo的不会技术,总觉的有点残疾。

Leave a Reply