sql - 从电子邮件字符串中删除特殊符号
问题描述
我需要替换电子邮件字符串中的一些字符,正是这样的操作:
lower_email = str.lower(str.split(email,'@')[0])
nopunc_email = re.sub('[!@#$%^&*()-=+.,]', ' ', lower_email)
nonum_email = re.sub(r'[0-9]+', '', nopunc_email).strip()
但是在 SQL 中
我尝试使用 expression TRANSLATE(lower(email), 'a1_a.a-a@1-+()a ', 'a a a a')
,但它没有给我解决方案。
提前致谢!
例如:
import re
email = 'some_email.example-2021@gmail.com'
lower_email = str.lower(str.split(email,'@')[0])
nopunc_email = re.sub('[!@_#$%^&*()-=+.,]', ' ', lower_email)
nonum_email = re.sub(r'[0-9]+', '', nopunc_email).strip()
result 'some email example'
解决方案
SELECT email,
TRIM(
TRANSLATE(
LOWER(SUBSTR(email, 1, INSTR(email, '@') - 1)),
'!_#$%^&*()-=+.,0123456789',
' '
)
) AS translated
FROM table_name
其中,对于样本数据:
CREATE TABLE table_name (email) AS
SELECT 'some_email.example-2021@gmail.com' FROM DUAL;
输出:
电子邮件 已翻译 some_email.example-2021@gmail.com 一些电子邮件示例
db<>在这里摆弄
推荐阅读
- scala - Akka Stream 序列化异常而死
- python - 使用用户输入在外部文件中写入、更新和读取列表
- d3.js - dc.js - 删除旧图表并在范围滑块过滤器上重绘图表
- php - xmlReader 不会退出读取大文件
- asp.net - 无法为 ASP.NET.Core 应用程序加载文件或程序集 microsoft.visualstudio.editor.razor 2017
- javascript - 如何在文本框中仅回答鼠标所在的图像?
- c# - 太重而无法共享的 DTO
- r - R - ggplot boxplot,图中印有标准偏差值?
- javascript - 在 Snaptest.io 中生成的 NightwatchJS 代码在 Nightwatch NPM 测试框架中不起作用
- java - 如何在 Selenium 中使用 sendKeys() 方法传递数组列表