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 に答える