【问题标题】:Extracting number from unicode string with regex使用正则表达式从 unicode 字符串中提取数字
【发布时间】:2014-01-01 22:16:47
【问题描述】:

我有以下包含一些产品数据的字典:

dictionary = {'price': [u'3\xa0590 EUR'],
              'name': [u'Product name with unicode chars]}

所有值都是 unicode。如您所见,我使用列表作为字典值,因为有时我需要连接来自多个不同来源的信息。

我正在寻找一种方法,通过使用正则表达式从价格值中提取数字,而不需要不间断空格 (\xa0) 和末尾的货币 (EUR)。

在这种情况下,我希望看到以下结果:

3590

您能提出一个解决方案吗?

[解决方案]

在此处添加解决方案,因为 cmets 字段意外包装了我的代码:

我使用了 Python 的 re 模块中的 .sub() 方法,它是一个替换函数。这是给我预期结果的最终代码:

p = re.compile( '(\xa0| EUR|)')
result = p.sub( '', dictionary['price'][0])

【问题讨论】:

    标签: python regex unicode-string


    【解决方案1】:

    不确定python,但这里有一个正则表达式:

    p = /\D/g;
    s.replace(p, '');
    

    【讨论】:

    • 谢谢!以下实现工作正常。 .sub() 等于 Python 正则表达式中的替换函数。 p = re.compile( '(\xa0| EUR|)') result = p.sub( '', dictionary['price'][0])
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-17
    • 2014-08-25
    • 1970-01-01
    • 2010-10-14
    • 2011-05-10
    • 2011-12-05
    相关资源
    最近更新 更多