在python中的句子中的多个位置提取美元金额

时间:2016-02-04 06:36:57

标签: python regex

我有一个句子,如下所示,我需要用逗号提取美元金额才能填入字典。我尝试过几个选项,但不能成功。请指导。

For par\n 
$3,500 single /$7,000 group
For nonpar\n
$7,000 single  /$14,000 group

预期输出为:

"rates":{

    "single" :  "$3,500 (par) / $7,000 (nonpar)",
    "group"  :  "$7,000 (par) / $14,000 (nonpar)"
}

\ n这是一个新行 数量可能在每3个值之后有小数点和逗号,如下所示。

我能够单独为金额编写正则表达式,但没有找到正确的方法将其扩展到我的要求。

re.search(r'^\$\d{1,3}(,\d{3})*(\.\d+)?$','$1,212,500.23')

EDIT1: 继续前进一步:

re.findall(r'\$\d{1,3}(?:\,\d{3})*(?:\.\d{2})?', str)
  • 可以获取列表中的所有值(但需要有策略知道哪个值对应于什么?)

EDIT2:

re.findall(r'\For par\W*(\$\d{1,3}(?:\,\d{3})*(?:\.\d{2})?\W*single)\s*\W*(\$\d{1,3}(?:\,\d{3})*(?:\.\d{2})?\W*group)', str)

请帮我改进一下并使其更通用。

由于

0 个答案:

没有答案