Hive中并无replace函数,只有两个类似的函数来实现字符串的替换功能
目录
regexp_replace()
语法:regexp_replace(string A,string B,string C)
返回值:string
说明:将字符串A中的符合Java正则表达式的B的部分替换为C
使用regexp_replace()统计字符串中字符出现的个数
统计字符串:“AHe AHe”中“He”出现的次数
1、先计算出总体字符串的长度
2、将我们需要计算的字符串剔除来(但是这里在做替换的时候,如果最后的空格给了一个空格,那么之后的结果也要做一些简单的变换)
3、两者进行相减
如果给了一个空格
就需要这样进行变换
sql中的translate()与replace()的对比
replace与translate都具备替换功能
只不过replace针对的是字符串,而translate针对的是单个字符
translate()
可以看到这个函数的作用是单个字符的替换,示例中a与g对应,b与h对应,剩下的c没有对应的,自动被舍弃
可以使用该函数对字符串中的某段字符串进行剔除
replace()
在hivesql中并没有replace的用法,但replace的用法是将字符串做整体的变换
官方语法:
REPLACE ( string_expression , string_pattern , string_replacement )
参数含义:
string_expression 要搜索的字符串表达式。string_expression 可以是字符或二进制数据类型。
string_pattern 是要查找的子字符串。string_pattern 可以是字符或二进制数据类型。string_pattern 不能是空字符串 (’’)。
string_replacement 替换字符串。string_replacement 可以是字符或二进制数据类型。
返回类型:
如果其中的一个输入参数数据类型为 nvarchar,则返回 nvarchar;否则 REPLACE 返回 varchar。
如果任何一个参数为 NULL,则返回 NULL。
最直接、最直白的意思:REPLACE(String,from_str,to_str) 即:将String中所有出现的from_str替换为to_str
感谢阅读,我是啊帅和和,一位大数据专业大四学生,祝你快乐。