2015-06-05 5 views
-1

У меня есть цены похожи на:Найти код валюты в ценовой строке

$ 1.99 
2,99 € 

Как извлечь символ валюты? Это должно быть «пробел + символ» или «символ + пространство». Вот то, что я в настоящее время, но это не работает для второго случая:

s='2,99 €' 
>>> re.findall('\s\w',s) 

Что бы быть лучшим способом извлечь символ валюты?

+0

возможно дубликат [Что такое регулярное выражение для символа валюты?] (Http://stackoverflow.com/questions/25978771/what-is-regex- для валюты-символ) – Andy

ответ

1

Я знаю, что этот не использует re, но это может быть полезно. Разделить строку и просто проверить, если он имеет символ:

s = '2,99 €' 
for i in s.split(' '): 
    if i == '€': 
     # That's my currency! 
0

Если вы знаете, что это будет в начале или в конце, то проверьте, есть?

currency_code = None 
currency_codes = ("$", "€",) 
if len(s) > 0: 
    if s[0] in currency_codes: 
     currency_code = s[0] 
    elif s[-1] in currency_codes: 
     currency_code = s[-1] 

Вы можете сделать это с помощью регулярного выражения, но это похоже на излишний избыток для этого?

0

это очень-очень Гетто, но ...

import string 
filter = string.digits + ' ,.' 
currency = [ch for ch in s if ch not in filter][0] 
Смежные вопросы