【发布时间】:2019-12-26 14:25:54
【问题描述】:
我正在尝试构建一个用于文本提取用例的应用程序,但我无法从中提取准确的价格。
我有这样的文字,
string1 = 'Friscos #8603\n8100 E. Orchard Road\nGreenwood Village, Colorado 80111\n2013-11-02\nTable 00\nGuest\n1 Oysters 1/2 Shell #1\n1 Crab Cake\n1 Filet 1602 Bone In\n1 Ribeye 22oz Bone In\n1 Asparagus\n1 Potato Au Gratin\n$17.00\n$19.00\n$66.00\n$53.00\n$12.00\n$11.50\nSub Total\nTax\n$178.50\n$12.94\nTotal\n$191.44\n'
string2 = 'Berghotel\nGrosse Scheidegg\n3818 Grindelwald\nFamilie R. Müller\nRech. Nr. 4572\nBar\n30.07.2007/13:29:17\nTisch 7/01\nNM\n#ರ\n2xLatte Macchiato à 4.50 CHF\n1xGloki\nà 5.00 CHF\n1xSchweinschnitzel à 22.00 CHF\n1xChässpätzli à 18.50 CHF\n#ರ #ರ #1ರ\n5.00\n22.00\n18.50\nTotal:\nCHF\n54.50\nIncl. 7.6% MwSt\n54.50 CHF:\n3.85\nEntspricht in Euro 36.33 EUR\nEs bediente Sie: Ursula\nMwSt Nr. : 430 234\nTel.: 033 853 67 16\nFax.: 033 853 67 19\nE-mail: grossescheidegg@bluewin.ch\n'
我想使用正则表达式提取出现在单词 total 之后的 price,但我只能提取所有浮动数字。另请注意,有时您可能还会看到诸如sub total 之类的词,但我只需要出现在词total 之后的价格。有时在total之后也可能出现其他词。所以 Regex 应该匹配 word total 并提取出现在它旁边的浮点数。
感谢任何帮助。
这是我尝试过的,
re.findall("\d+\.\d+", string1) # this returns all floating numbers.
【问题讨论】:
-
Total\nTax\n$178.50\n$12.94\nTotal\n$191.44\n和string1? -
如果您看到第一个总计的 string1 不只是总计,它是“小计”?我只需要在 total just total 之后提取浮点数。
标签: python regex regex-lookarounds