我需要从某个字符串中提取总和。
我现在有这个
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])
-
(?![,.\d])
断言此匹配后的下一个字符不是数字或点/逗号 -
(?<![,.\d])
断言此匹配后的前一个字符不是数字或点/逗号
关于python - 正则表达式从字符串中提取财务金额,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34873554/