sql - 如何在 Hive 中替换字符串
问题描述
我的蜂巢表中有如下数据:
FirstName
Mr Tim Cannon
Guest
Miss Kerri Smith
Missra
我正在尝试使用
INITCAP(REGEXP_REPLACE('Miss Missra','(Mr.)|^Mr$|^Ms.$|^Ms$|^Mrs.$|^Mrs$|^Dr.$|^Dr$|^Miss$',' '))
但它仍然是一样的。
尝试使用时
INITCAP(REGEXP_REPLACE('Miss Missra','(\\+)|(Mr.)|^Mr$|^Ms.$|^Ms$|^Mrs.$|^Mrs$|^Dr.$|^Dr$|Miss',' '))
然后它将'Missra'替换为'Ra'
输出应该是:
FirstName
Tim Cannon
Guest
Kerri Smith
Missra
请建议我一些解决方法。
解决方案
$
表示行尾,在'^Miss'
你有空间之后,不是行尾。'^Miss '
应该可以正常工作。点(文字.
)也应该被屏蔽,\\
因为正则表达式中的点具有特殊含义 - 任何字符,而且您的意思似乎是字面上的点(.
)。
^
- 表示行锚的开头,顺便说一句,第一个正则表达式Mr\\.
没有^
锚,如果不是故意的,请修复它。如果您不仅要在开头替换这些表达式,请删除所有^
REGEXP_REPLACE('Miss Missra','Mr\\.|^Mr |^Ms\\. |^Ms |^Mrs\\. |^Mrs |^Dr\\. |^Dr |^Miss ',' ')
推荐阅读
- assembly - 将 ARM 汇编指令编码为 ARM 机器语言
- r - 如何从 GAM 中提取和修改单个 p.table 组件适合 R
- .net - 模型类和数据类有什么区别?
- vue.js - 动态组件的 Vue 转换
- python - 随机整数读取和写入文件。尝试使用范围 0,501 创建多个函数
- c# - 您如何从剃刀视图页面引用外键?
- excel - Excel - 直接 excel 公式计算 2 个数组 x 和 y 与平均值的偏差乘积之和(无平方)
- javascript - 使用 NPM 将 Bootstrap 添加到项目时,如何让 bootstrap.js、jquery 和 popper.js 工作?
- c - 从C中的二进制文件中删除结构
- amazon-web-services - 使用 Boto3 通过 AWS SNS 通知发送图像