0

我的正则表达式和我的字符串有问题...

我需要一个正则表达式代码中的解决方案来获取字符串的浮点数。我不知道为什么这段代码不起作用。

from bs4 import BeautifulSoup
import urllib2
from re import sub



url = 'http://www.ebay.es/itm/PET-SHOP-BOYS-OFFICIAL-PROMO-BARCELONA-ELECTRIC-TOUR-BEER-CERVEZA-20cl-BOTTLE-/111116266655' #raw_input('Dime la url que deseas: ')
code = urllib2.urlopen(url).read();
soup = BeautifulSoup(code)
info = soup.find('span', id='v4-27').contents[0]
print info


info = sub("[\D]+,+[\D]", "", info)
i = float(info)
print i
4

1 回答 1

0

\D表示非数字。你需要\d改用。在这里查看详细信息:http ://en.wikipedia.org/wiki/Regular_expression#Character_classes

更新

我明白了,您的方法是替换所有非数字字符。在我看来,匹配所需的信息更清楚:

>>> import re
>>> s = "15,00 EUR"
>>> price_string = re.search('(\d+,\d+)', s).group(1)
>>> price_string
'15,00'
>>> float(price_string.replace(',', '.'))
15.0
于 2013-07-11T09:25:37.293 回答