python表达混乱

时间:2016-10-12 08:11:16

标签: python python-2.7

阅读本书时:使用python进行网页抓取,重新表达让我困惑,

webpage_regex = re.compile('<a[^>]+href=["\'](.*?)["\']', re.IGNORECASE)

通常看起来像一个链接:

<a href="/view/Afghanistan-1">

我的困惑在于:

  1. 由于[^>]表示没有>,为什么它后跟+?这+似乎毫无用处。

  2. 混淆是(.*?),因为*表示重复0次或更多次,为什么需要?再次重复*

1 个答案:

答案 0 :(得分:0)

  1. [>]+匹配代码中的任何其他属性及其对应值。

  2. *?在零和无限次之间匹配,尽可能少,根据需要进行扩展。因此它只会捕获NEXT ["\']

  3. 之前的文本