Hướng dẫn extract currency symbol python - trích xuất biểu tượng tiền tệ python

Tôi đang viết một số mã trong Python, nơi tôi được yêu cầu trích xuất ký hiệu tiền tệ từ một mức giá. Vì thế,

cost = $56.78

Tôi chỉ cần nhận được '$'.

Trên các diễn đàn này, tôi tìm thấy cách trích xuất số nhưng không phải là biểu tượng tiền tệ. Tôi mới đến Regexes nên sẽ biết ơn sự giúp đỡ.

Nó có thể là bất kỳ loại tiền nào, không chỉ đô la, mà tôi cho rằng nó sẽ là nhân vật đầu tiên trong chuỗi ..

Đã hỏi ngày 27 tháng 3 năm 2015 lúc 15:42Mar 27, 2015 at 15:42

Hướng dẫn extract currency symbol python - trích xuất biểu tượng tiền tệ python

user3033194user3033194user3033194

1.7157 Huy hiệu vàng41 Huy hiệu bạc61 Huy hiệu Đồng7 gold badges41 silver badges61 bronze badges

2

>>> def get_symbol(price):
        import re
        pattern =  r'(\D*)[\d\,\.]+(\D*)'
        g = re.match(pattern, price.strip()).groups()
        return (g[0] or g[1]).strip()

>>> get_symbol('$12.5')
'$'
>>> get_symbol('12.5USD')
'USD'

Đã trả lời ngày 27 tháng 3 năm 2015 lúc 15:52Mar 27, 2015 at 15:52

mshsayemmshsayemmshsayem

17.2k11 Huy hiệu vàng61 Huy hiệu bạc67 Huy hiệu đồng11 gold badges61 silver badges67 bronze badges

4

Mẫu thực tế để phù hợp với tất cả các ký hiệu tiền tệ là ____10. Nhưng regex này sẽ không được hỗ trợ bởi mô -đun ____11 mặc định của Python. Nhưng mô -đun

>>> def get_symbol(price):
        import re
        pattern =  r'(\D*)[\d\,\.]+(\D*)'
        g = re.match(pattern, price.strip()).groups()
        return (g[0] or g[1]).strip()

>>> get_symbol('$12.5')
'$'
>>> get_symbol('12.5USD')
'USD'
2 bên ngoài sẽ hỗ trợ nhiều regexes pcre.

>>> cost = '$56.78'
>>> import regex
>>> regex.findall(r'\p{Sc}', cost)
['$']

THỬ NGHIỆM

HOẶC

Chỉ cần thay thế các số hoặc khoảng trắng bằng một chuỗi trống thông qua hàm

>>> def get_symbol(price):
        import re
        pattern =  r'(\D*)[\d\,\.]+(\D*)'
        g = re.match(pattern, price.strip()).groups()
        return (g[0] or g[1]).strip()

>>> get_symbol('$12.5')
'$'
>>> get_symbol('12.5USD')
'USD'
3.

>>> def get_symbol(price):
        return re.sub(r'\d+(?:,\d+)*(?:\.\d+)?|\s+', '', price)

>>> get_symbol('EUR 10,000.00')
'EUR'
>>> get_symbol(' $ 12.5')
'$'
>>> get_symbol('12.5 USD')
'USD'

HOẶC

Chỉ cần thay thế các số hoặc khoảng trắng bằng một chuỗi trống thông qua hàm

>>> def get_symbol(price):
        import re
        pattern =  r'(\D*)[\d\,\.]+(\D*)'
        g = re.match(pattern, price.strip()).groups()
        return (g[0] or g[1]).strip()

>>> get_symbol('$12.5')
'$'
>>> get_symbol('12.5USD')
'USD'
3.

>>> def get_symbol(price):
        return re.sub(r'[\d,.\s]', '', price)

>>> get_symbol('EUR 10,000.00')
'EUR'
>>> get_symbol(' $ 12.5')
'$'
>>> get_symbol('12.5 USD')
'USD'

Đã trả lời ngày 27 tháng 3 năm 2015 lúc 15:52Mar 27, 2015 at 15:52

Hướng dẫn extract currency symbol python - trích xuất biểu tượng tiền tệ python

mshsayemmshsayemAvinash Raj

17.2k11 Huy hiệu vàng61 Huy hiệu bạc67 Huy hiệu đồng25 gold badges216 silver badges264 bronze badges

Mẫu thực tế để phù hợp với tất cả các ký hiệu tiền tệ là ____10. Nhưng regex này sẽ không được hỗ trợ bởi mô -đun ____11 mặc định của Python. Nhưng mô -đun

>>> def get_symbol(price):
        import re
        pattern =  r'(\D*)[\d\,\.]+(\D*)'
        g = re.match(pattern, price.strip()).groups()
        return (g[0] or g[1]).strip()

>>> get_symbol('$12.5')
'$'
>>> get_symbol('12.5USD')
'USD'
2 bên ngoài sẽ hỗ trợ nhiều regexes pcre.

cost = '$56.78';

currency = cost[:1]

print(currency)

THỬ NGHIỆM

HOẶC

currency = cost[0]

Chỉ cần thay thế các số hoặc khoảng trắng bằng một chuỗi trống thông qua hàm

>>> def get_symbol(price):
        import re
        pattern =  r'(\D*)[\d\,\.]+(\D*)'
        g = re.match(pattern, price.strip()).groups()
        return (g[0] or g[1]).strip()

>>> get_symbol('$12.5')
'$'
>>> get_symbol('12.5USD')
'USD'
3.Mar 27, 2015 at 15:48

Giữ nó đơn giản.

>>> cost = $56.78     #<-- you can't do this cause its not a valid string
SyntaxError: invalid syntax

>>> cost = '$56.78'   #valid string

>>> cost[0]
'$'

Avinash Rajavinash RajMar 27, 2015 at 15:47

Hướng dẫn extract currency symbol python - trích xuất biểu tượng tiền tệ python

169K25 Huy hiệu vàng216 Huy hiệu bạc264 Huy hiệu Đồnglogic

Giả sử chi phí là giá trị chuỗi, tôi sẽ làm như sau:3 gold badges15 silver badges22 bronze badges

0

Chỉ cần lấy giá trị đầu tiên trong chuỗi chi phí và bạn sẽ có tiền tệ của mình.

Bạn cũng có thể làm:

def get_symbol(price):
    import string
    delete_chars = dict((ord(char), None) for char in string.digits + u" ,.+-")
    price = unicode(price).translate(delete_chars)
    try:
        return price.decode('ascii').encode('ascii')
    except (UnicodeDecodeError,UnicodeEncodeError):
        return price

Đã trả lời ngày 27 tháng 3 năm 2015 lúc 15:48

>>> print get_symbol(u' \u20B9 12.5')
₹
>>> get_symbol(u' \u20B9 12.5')
u'\u20b9'
>>> get_symbol('$12.5')
'$'
>>> get_symbol('12.5USD')
'USD'
>>> get_symbol('EUR 10,000.00')
'EUR'
>>> get_symbol(' $ 12.5')
'$'

Nếu

>>> def get_symbol(price):
        import re
        pattern =  r'(\D*)[\d\,\.]+(\D*)'
        g = re.match(pattern, price.strip()).groups()
        return (g[0] or g[1]).strip()

>>> get_symbol('$12.5')
'$'
>>> get_symbol('12.5USD')
'USD'
4 bạn chỉ cần làm
>>> def get_symbol(price):
        import re
        pattern =  r'(\D*)[\d\,\.]+(\D*)'
        g = re.match(pattern, price.strip()).groups()
        return (g[0] or g[1]).strip()

>>> get_symbol('$12.5')
'$'
>>> get_symbol('12.5USD')
'USD'
5 để có được "ký tự đầu tiên của chuỗi":Mar 28, 2015 at 5:57

Đã trả lời ngày 27 tháng 3 năm 2015 lúc 15:47Abhijit

logiclogic18 gold badges128 silver badges199 bronze badges

0