07-16-2018 06:22 AM
I'm executing the following query in Hive. Many of my field values in my actual table look like:
abc 123 xyz (10)
etc. etc. I just want to replace any digits in parentheses at the end of a string with "x".
select 'SP0724_FA (1)' as str, regexp_replace(trim('SP0724_FA (1)'), ' [(]\d+[)]$', 'x') as str_2
The online testing app at regex101.com matches this. However, Hive returns the same value for str and str_2. I would expect to see "SP0724_FAx" as the str_2 value. Please note the space at the beginning of the regex pattern.
07-19-2018 05:54 AM
Turned out to be pretty simple. Hadoop (or at least Hive) prefers two backslashes like \\d rather than \d. I ended up using this, which also requires one to four digits.