2014-09-22 9 views

Antwort

41

können Sie die Unicode-Kategorie verwenden, wenn Sie regex Paket verwenden:

>>> 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

Alterantive Weg unicodedata.category mit:

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

Danke! Ich wusste nicht, dass das "Regex" -Paket vom "Re" -Paket verschieden ist. – Lanc

+2

'regex' ist * genial *. [Das ist nur die Spitze des Eisbergs.] (Https://pypi.python.org/pypi/regex) – Veedrac

+0

@Lanc, Es gibt Leute, die versucht haben, deine Frage zu beantworten. Wenn Ihnen das weiterhilft, können Sie dies der Community mitteilen, indem Sie die Antwort akzeptieren (http://meta.stackoverflow.com/a/5235), die für Sie am nützlichsten ist. – falsetru

26

Wenn Sie mit re haften möchten, liefern die characters from Sc manually:

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

tun.

+0

Welches ist das Euro-Symbol? – Nzall

+3

Das ist in '\ u20a0- \ u20bd' enthalten: € ist' \ u20ac'. – Phillip

+6

Sie können die Generierung des Satzes von Währungszeichen automatisieren: 'currency_symbols = u ''. Join (unichr (i) für i im Bereich (0xffff) wenn unicodedata.category (unichr (i)) == 'Sc')' –