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

如何使用REGEXP_REPLACE从字符串中移除邮箱并保留其他文本

问题描述

我手里有个包含多个邮箱地址的字符串,想只删掉里面的邮箱,剩下的文本保留。试着用正则表达式实现,但搞不清怎么在留着其他内容的前提下精准移除邮箱。

示例字符串:

David Ram:DRAM@info.au,Seja:SEJA@info.au,Yogan:YSGAN@info.au

尝试的SQL语句:

SELECT REGEXP_REPLACE(TEXTAREA,':[a-zA-z0-9.]@[a-zA-z0-9.]*' )  FROM CONTEXT

期望输出:

David Ram,Seja,Yogan
解决方案

你的写法有两个问题:

  • 正则匹配不完整:原正则只抓了:到@的一小部分,没覆盖完整的邮箱格式,而且字符范围写错了——[a-zA-z]里的A-z会包含[、\这类无关符号,应该用[A-Za-z0-9._]来匹配邮箱的合法字符。
  • 缺少替换值参数:多数数据库的REGEXP_REPLACE需要第三个参数说明替换成什么,默认不是空字符串,得明确写''。

调整后的SQL语句:

SELECT REGEXP_REPLACE(TEXTAREA, ':[A-Za-z0-9._]+@[A-Za-z0-9._]+', '') FROM CONTEXT;

说明:

  • :[A-Za-z0-9._]+ 精准匹配冒号开头的邮箱用户名(包含字母、数字、下划线、点)
  • @[A-Za-z0-9._]+ 匹配@后面的域名部分
  • 把这些匹配到的邮箱相关内容替换为空,就能得到你想要的纯名字结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 11:47:06