什么是货币符号的正则表达式?

时间:2014-09-22 16:25:10

标签: python regex

在java中,我可以使用正则表达式:\p{Sc}来检测文本中的货币符号。 Python中的等价物是什么?

2 个答案:

答案 0 :(得分:42)

如果您使用regex包,则可以使用unicode类别:

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

<强>更新

使用unicodedata.category的替代方式:

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

答案 1 :(得分:26)

如果您想坚持re,请提供characters from Sc manually

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

会做的。