Google Apps Script:Gmail重复邮箱字段提取及正则匹配问题
解决Gmail解析到Google表格的两个正则问题
1. 提取第二个“Indirizzo mail:”字段内容
通过全局匹配所有符合规则的字段,直接取第二个结果即可:
// 假设已获取邮件内容到emailBody变量 const emailRegex = /Indirizzo mail:\s*(.*?)(?=\n|\r|$)/gs; const emailMatches = emailBody.match(emailRegex); // 取第二个匹配项(数组索引从0开始,第二个对应索引1) if (emailMatches && emailMatches.length >= 2) { const secondEmail = emailMatches[1].trim(); // 将secondEmail写入Google表格对应单元格 }
- 正则说明:
g标记开启全局匹配,找出所有含“Indirizzo mail:”的字段s标记让.匹配换行符,避免字段内容跨换行导致匹配中断(?=\n|\r|$)正向预查,匹配到换行或文本结尾就停止,防止捕获多余内容
2. 解决“City (Lake's Camil):”字段匹配返回Null的问题
Google Apps Script中部分场景下s修饰符兼容性不佳,改用[\s\S]匹配所有字符(含换行),同时确保括号转义正确:
const cityRegex = /City \(Lake's Camil\):\s*([\s\S]*?)(?=\n|\r|$)/; const cityMatch = emailBody.match(cityRegex); if (cityMatch) { const city = cityMatch[1].trim(); // 将city写入Google表格对应单元格 }
- 排查要点:
- 确认邮件原始内容中的括号是半角
(),若为全角()需同步修改正则中的括号 - 核对字段名与邮件内容的大小写、空格完全一致,微小差异会导致匹配失败
- 确认邮件原始内容中的括号是半角
内容的提问来源于stack exchange,提问作者Gavis
相关产品推荐
相关产品推荐

