在 Hive 中将单引号 (') 替换为空
Replace single quote(') with nothing in Hive
我有一个功能可以用下面的内容替换不同类型的字符。
CAST(TRANSLATE(REGEXP_REPLACE(UPPER(number),' |,|-|/|&|_|''''',''),'.|(|)','') as string) as number
一切正常,除了 ''''' 部分,我想用任何东西替换单个 quote/apostrophe。
示例:
TYLER'SCOFFEE should come out as TYLERSCOFFEE
我检查了这个论坛的示例,似乎我们可以使用反斜杠来实现上述目的,但是当我像下面这样使用反斜杠时,它会引发错误。
select CAST(TRANSLATE(REGEXP_REPLACE('TYLER\'SCOFFEE',' |,|-|/|&|_|'\'',''),'.|(|)','') as string) as number;
Error: Error while compiling statement: FAILED: ParseException line 1:68 character '\' not supported here (state=42000,code=40000)
有人可以帮我解决我的问题吗?谢谢
使用双引号正则表达式。双引号内,单引号被屏蔽:
select 'TYLER\'SCOFFEE' as original_str, regexp_replace('TYLER\'SCOFFEE',"'",'') result;
结果:
original_str result
TYLER'SCOFFEE TYLERSCOFFEE
另外如果你需要用相同的替换替换很多不同的字符,把它们全部放入[]
,不需要使用管道|
:
select regexp_replace('TYLER\'SCOFFEE ,-/&_',
"[ ,-/&_']",
'')
结果:
TYLERSCOFFEE
我有一个功能可以用下面的内容替换不同类型的字符。
CAST(TRANSLATE(REGEXP_REPLACE(UPPER(number),' |,|-|/|&|_|''''',''),'.|(|)','') as string) as number
一切正常,除了 ''''' 部分,我想用任何东西替换单个 quote/apostrophe。
示例:
TYLER'SCOFFEE should come out as TYLERSCOFFEE
我检查了这个论坛的示例,似乎我们可以使用反斜杠来实现上述目的,但是当我像下面这样使用反斜杠时,它会引发错误。
select CAST(TRANSLATE(REGEXP_REPLACE('TYLER\'SCOFFEE',' |,|-|/|&|_|'\'',''),'.|(|)','') as string) as number;
Error: Error while compiling statement: FAILED: ParseException line 1:68 character '\' not supported here (state=42000,code=40000)
有人可以帮我解决我的问题吗?谢谢
使用双引号正则表达式。双引号内,单引号被屏蔽:
select 'TYLER\'SCOFFEE' as original_str, regexp_replace('TYLER\'SCOFFEE',"'",'') result;
结果:
original_str result
TYLER'SCOFFEE TYLERSCOFFEE
另外如果你需要用相同的替换替换很多不同的字符,把它们全部放入[]
,不需要使用管道|
:
select regexp_replace('TYLER\'SCOFFEE ,-/&_',
"[ ,-/&_']",
'')
结果:
TYLERSCOFFEE