这个问题在这里已有答案:
我是正则表达式的新手,我想从给定的文本中提取金额,这是我的代码:
import pandas as pd
import re
msg='He was paid USD 2,000.00 & USD 500 on 19-02-2018 at 08:15:24.'
pattern = re.compile(r'USD\s+(\d+)')
matches = pattern.finditer(msg)
for match in matches:
print(match)
我希望输出为2000和500,但目前我的输出为2美元。请帮忙。注意:原始邮件很长,但所有金额都在它们之前。
这将是正确的模式:r'USD\s+([\d,\.]+)'
>>> pattern = re.compile(r'USD\s+([\d,\.]+)')
>>> matches = pattern.finditer(msg)
>>> for match in matches:
... print(match)
...
<re.Match object; span=(12, 24), match='USD 2,000.00'>
<re.Match object; span=(27, 34), match='USD 500'>
你需要在正则表达式中包含逗号(,
)和点(.
)。 \d
将仅匹配数字。
从最终比赛中删除后,您的工作就完成了。
试试这个吧。它会工作。
USD\s+(\d+)(,*)(\d+)