怎么优雅的提取字符串中的汉语金钱信息?

新手上路,请多包涵

有一个需要提取一个字符串中的汉语金钱信息, 类似于下面:

  • 午饭10块5 => ¥10.5
  • 请客消费107块4毛5 => ¥107.45
  • 包子二块5 => ¥2.5

请问怎么优雅的提取出来?

阅读 3.3k
3 个回答

问题比较复杂,可能得写parser

这种情况比较复杂,如果实际情况可以简化或可以要求这些文字规范化,建议直接用多个正则表达式匹配,重点在于实际情况的简化和规范化。如果无法简化,可以试试分词后处理,例如使用结巴分词,然后再逐词处理。再复杂点,可能就要使用正经的自然语言处理模型了,这个我就不会了:P

/([零一二三四五六七八九十百千万]+块)?([零一二三四五六七八九十百千万]+毛)?([零一二三四五六七八九十百千万]+分)?/
获取之后用方法转换 中文数值 到 数字数值(这个找一下应该有现成的)
如果转换失败,表明 中文数值写法错误 或 不是金额

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题