-2

我对正则表达式有疑问... Python 可以执行下一部分代码,但如果我更改最终表达式,我将无法运行代码。

在最后一行

from bs4 import BeautifulSoup
import urllib2
import re

url = 'http://www.ebay.es/itm/IMN-DE-NEVERA-DE-LA-CERVEZA-BUDWEISER-/281134822561'    #raw_input('Dime la url que deseas: ')    
code = urllib2.urlopen(url).read();
soup = BeautifulSoup(code)
tag = soup.find('span', {'class' : "vi-is1-t"}).contents[0]
print tag
print re.search('[\d*]+:[\d*]+:\d*' , tag).group() #If I put '[\d*]+:[\d*]+:[\d*]' not run 
4

1 回答 1

5

字符类中的任何字符[...]都是该类的一部分:

[\d*]

匹配数字文字*星号。如果您想匹配 0 个或多个数字,请将星号放在类之外

[\d]*

在这一点上,您不需要单独使用[..],因为\d它本身就是一个类:

\d*

前两个模式已经使用+(1 个或多个),因此它们匹配 1 个或多个数字星号。

你当时想要匹配的是:

print re.search('\d+:\d+:\d+' , tag).group()

甚至:

print re.search('\d{2}:\d{2}:\d{2}' , tag).group()

每个只匹配 2 位数字。

于 2013-07-12T10:22:22.420 回答