Presto(Query Fabric)下邮箱字符串转可读规范名的优化语法咨询
Presto引擎下邮箱本地名称标准化实现方案
针对你的需求,可直接用Presto原生字符串函数组合实现,完全适配Query Fabric运行环境,处理逻辑完全覆盖你列出的输入输出要求:
实现逻辑链路
- 提取邮箱@符前的本地段,沿用你已经验证可用的
split_part()函数 - 用正则表达式批量匹配并移除所有数字字符
- 将所有下划线替换为单个空格
- 清理替换过程中可能出现的连续空格、首尾多余空格
- 调用Presto内置的
initcap()函数自动完成逐词首字母大写、其余字母小写的格式化,替代你之前尝试的手动嵌套UPPER/LOWER方案——那种写法会把整段字符串统一转为全小写,无法实现逐词首字母大写的效果
可直接运行的完整代码
SELECT initcap( trim( regexp_replace( replace( regexp_replace(split_part(T.EMAIL, '@', 1), '[0-9]', ''), '_', ' ' ), '\\s+', ' ' ) ) ) AS Name FROM T
效果验证
对照你给出的测试输入:
- 输入
Full_Metal_Jacket@movie.com,输出Full Metal Jacket,和预期完全一致 - 输入
TOP_GUN2@movie.email.com,输出Top Gun,和预期完全一致
鲁棒性说明
这套写法可以覆盖常见边界场景:比如本地段前后带数字、数字夹在两个下划线中间导致替换后出现连续空格的情况,不需要额外写条件判断逻辑。
内容的提问来源于stack exchange,提问作者CodeOfArms
相关产品推荐
相关产品推荐

