python - 正则表达式从字符串中提取财务金额

标签 python regex python-3.x

我需要从某个字符串中提取总和。

我现在有这个

values = re.findall(r" \d*[.,]\d+", mystr)

我需要匹配所有十进制值,即使它们有一个“。”或“,”以欧洲方式和美国方式分隔千分之一。 以下是一些典型的字符串:

DERT-UID: 123456 01 DD. 2014-D C-12 BRUT: 27,50 - COMM 0,37 REF.OP.123

我需要 27,50 和 037

ALL / 1000.00/NR.00123456789/KOM. 10.00/DAT.23.123123123123 0

我需要 1000.00 和 10.00

F 1047 DU 31.12.14

我不需要任何东西,但现在我的正则表达式与日期的“31.12”部分匹配。

它还应该匹配“1,000.00”或“1.000,00”,我现在没有示例,但将来可能会发生(或者我的正则表达式不足以检测它们)。

谢谢

最佳答案

您可以在 python 中使用基于环视的正则表达式:

(?<![.,\d])\d+(?:([.,])\d+(?:\1\d+)*)?(?!\1)[.,]\d+(?![,.\d])

RegEx Demo

  • (?![,.\d])断言此匹配后的下一个字符不是数字或点/逗号
  • (?<![,.\d])断言此匹配后的前一个字符不是数字或点/逗号

关于python - 正则表达式从字符串中提取财务金额,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34873554/

相关文章:

由空格分隔的多个单词的正则表达式?

Javascript RegEx 替换以有条件地删除字符串的一部分

python3 linux - 检测没有root按下的键盘键

python - Tensorflow 导入元图占位符未提供

python - `tuple.__init__` 与元组子类中的 `super().__init__` 有什么不同?

python - 正则表达式提取多个符号后跟字符串中的单词-python

python - 如何将嵌套的 json 结构转换为数据框

python - 模拟 datetime.datetime.now() 时出错

python - 返回值不正确,未获得 'True' 返回,Python

python - 使用 Tkinter 显示 numpy 数组中的图像