You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Gmail交易邮件金额提取问题求助:正则匹配失败

提取Gmail转账邮件中的$X.XXX格式金额

你的正则表达式存在两个关键错误,导致无法正确匹配金额:

  • $是正则的结束锚点,不是字面美元符号,必须转义为\$才能匹配邮件里的$字符;
  • .是正则的通配符(匹配任意字符),要匹配实际的小数点,需要转义为\.。

修正后的正则应该是r'\$\d{1}\.\d{3}',用来匹配$X.XXX格式的金额。提取到结果后可以进一步处理,去掉开头的$符号,再按你需要的格式输出。

以下是修改后的完整代码片段:

import re

# Messages Filter
message_count = 50
for message in messages[:message_count]:
    msg = service.users().messages().get(userId='me', id=message['id']).execute()
    email = msg['snippet']
    if "Datos de la transferencia que recibiste Monto $" in email:
        # 匹配$X.XXX格式的金额
        matches = re.findall(r'\$\d{1}\.\d{3}', email)
        if matches:
            # 提取第一个匹配结果,去掉$符号
            money_amount = matches[0].replace('$', '')
            # 按要求格式输出
            print("Transaction Recieved"," $ " , money_amount,"!")
        # 标记邮件为已读
        service.users().messages().modify(userId='me', id=message['id'], body={'removeLabelIds': ['UNREAD']}).execute()

如果后续遇到金额整数部分超过1位的情况(比如$12.345),可以把正则调整为r'\$\d+\.\d{3}',其中+表示匹配1个或多个数字,适配更多金额格式。

内容的提问来源于stack exchange,提问作者Enanooo12

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 15:45:36