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

如何用正则表达式提取Gmail自定义标签<! ... >内的可变文本?

正则表达式捕获Gmail自定义标签内容的方案

嘿,我来帮你搞定这个需求!针对你要抓取<! text_to_be_captured_here >这类自定义标签内可变文本的需求,这里有几个适配不同场景的正则表达式方案,完全适配Gmail应用的开发场景:

基础场景(标签内无>或换行)

如果你的自定义标签里的内容不包含>符号,也没有换行,那么用这个非贪婪匹配的正则就足够了:

<!(.*?)>
  • 细节解释:
    • <! 精准匹配标签的固定开头部分
    • (.*?) 非贪婪捕获任意字符(*?确保匹配到第一个>就停止,避免误抓多个标签的内容)
    • > 匹配标签的固定结尾部分

包含换行或特殊字符的场景

Gmail邮件内容里经常会有换行,或者标签内可能包含各种特殊字符,这时候可以用这个能匹配所有字符(包括换行)的正则:

<!([\s\S]*?)>
  • 细节解释:[\s\S] 等价于匹配任意字符(\s是空白字符包括换行,\S是非空白字符,合起来覆盖所有字符类型),搭配*?非贪婪模式,完美覆盖带换行的标签内容。

代码示例(以JavaScript为例,适配Gmail插件开发)

如果你是在Gmail插件的JavaScript环境里使用,大概可以这么写:

// 假设这是从Gmail获取到的邮件内容
const emailBody = "这是一封测试邮件,里面有<!客户反馈内容:需要优化界面>还有其他信息,另外还有<!待办事项:周三前完成>";

// 初始化正则(加g表示全局匹配所有符合的标签)
const tagRegex = /<!([\s\S]*?)>/g;
let matchResult;

// 循环捕获所有匹配的内容
while ((matchResult = tagRegex.exec(emailBody)) !== null) {
  console.log("捕获到的标签内容:", matchResult[1]);
  // 这里可以把捕获到的内容存入变量或者做后续业务处理
}

注意事项

如果你的自定义标签存在嵌套情况(比如<!外层标签<!内层标签>>),那上面的基础正则就会失效,不过这种情况在自定义业务标签里很少见。如果真的需要处理嵌套,就得用支持递归匹配的正则引擎,但Gmail相关开发的常用环境(比如JavaScript)原生不支持,这时候可能需要结合代码逻辑来处理,不过大概率你不需要考虑这种极端情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 04:24:33