2014-09-22 15 views

risposta

41

È possibile utilizzare la categoria Unicode se si utilizza regex pacchetto:

>>> import regex 
>>> regex.findall(r'\p{Sc}', '$99.99/€77') # Python 3.x 
['$', '€'] 

>>> regex.findall(ur'\p{Sc}', u'$99.99/€77') # Python 2.x (NoteL unicode literal) 
[u'$', u'\xa2'] 
>>> print _[1] 
¢ 

UPDATE

modo alterantive utilizzando unicodedata.category:

>>> import unicodedata 
>>> [ch for ch in '$99.99/€77' if unicodedata.category(ch) == 'Sc'] 
['$', '€'] 
+4

Grazie! Non sapevo che il pacchetto 'regex' fosse diverso dal pacchetto 're'. – Lanc

+2

'regex' è * impressionante *. [Questa è solo la punta dell'iceberg.] (Https://pypi.python.org/pypi/regex) – Veedrac

+0

@Lanc, ci sono persone che hanno provato a rispondere alla tua domanda. Se questo ti ha aiutato, puoi dire alla community in modo tale da [accettando la risposta] (http://meta.stackoverflow.com/a/5235) che è stato più utile per te. – falsetru

26

Se si vuole attaccare con re, forniscono il characters from Sc manually:

u"[$¢£¤¥֏؋৲৳৻૱௹฿៛\u20a0-\u20bd\ua838\ufdfc\ufe69\uff04\uffe0\uffe1\uffe5\uffe6]" 

farà.

+0

Quale di questi è il simbolo dell'euro? – Nzall

+3

Questo è contenuto in '\ u20a0- \ u20bd': € è' \ u20ac'. – Phillip

+6

È possibile automatizzare la generazione del set di caratteri di valuta: 'currency_symbols = u '' join (unichr (i) per i in range (0xffff) se unicodedata.category (unichr (i)) == 'Sc')' –

Problemi correlati