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

如何在Google Sheets中用正则提取邮箱前缀前10个字母数字字符(遇@即停)

Google Sheets 邮箱前缀提取解决方案

需求说明

从邮箱地址的@符号前部分,提取最多前10个字母数字字符(0-9、a-z、A-Z),自动排除所有特殊字符,且遇到@符号立即停止处理。

正确公式

假设邮箱地址在单元格A1中,使用以下嵌套公式即可实现需求:

=LEFT(REGEXREPLACE(REGEXEXTRACT(A1,"^[^@]+"),"[^A-Za-z0-9]",""),10)

公式分步解释

  1. 提取@前的完整前缀:REGEXEXTRACT(A1,"^[^@]+")
    • 正则^[^@]+表示从字符串开头匹配所有非@的字符,精准截取@符号之前的全部内容。
  2. 过滤特殊字符:REGEXREPLACE(..., "[^A-Za-z0-9]","")
    • 用空字符串替换掉前缀中所有非字母数字的字符,只保留符合要求的字符。
  3. 截取最多10个字符:LEFT(...,10)
    • 从过滤后的字符中取前10个,满足“最多10个”的限制。

示例验证

将公式应用到示例邮箱,结果完全符合预期:

  • john@yahoo.com → john
  • suzieQ87@hotmail.com → suzieQ87
  • ilikemakingeggseverymorning@gmail.com → ilikemakin
  • 49!Gar.a_ge8UT@aol.com → 49Garage8U

原公式问题分析

你之前尝试的公式存在以下问题:

  • 第一个公式=regexextract("alwayssa.turning@gmail.com","^.{0,9}[[:alpha:]]"):.{0,9}会匹配任意字符(包括特殊字符如.),无法过滤非字母数字内容,也没有限制在@符号前处理。
  • 第二个公式=regexextract("suzie@gmail.com",".{0,9}[\w\s^@]"):.{0,9}会跨@符号匹配内容,且[\w\s^@]中的^是普通字符,无法排除@符号,导致结果包含@。
  • 第三个公式=REGEXEXTRACT("suzie40@gmail.com",".{0,9}[\w\d^\W]"):正则逻辑混乱,\w已包含\d,^\W写法错误,同样会跨@符号匹配内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 03:05:17