要浮动和正则表达式的字符串

时间:2013-07-11 09:16:57

标签: python regex string floating-point

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

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

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

1 个答案:

答案 0 :(得分: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