在Hive sql中使用正则表达式,在每第7个字符后插入逗号,并确保数据在每第7个字符后正确包含逗号。
在选择第7个字符时也可以忽略空格。
样本输入数据:
12F123f, 123asfH 0DB68ZZ, AG12453
112312f, 1212sfH 0DB68ZZ, AQ13463
输出:
12F123f,123asfH,0DB68ZZ,AG12453
112312f,1212sfH,0DB68ZZ,AQ13463
我尝试了以下代码,但无法正常工作并正确插入逗号。
select regexp_replace('12345 12456,12345 123', '(/(.{5})/g,"$1$")','')
答案 0 :(得分:1)
您只想将空字符替换为,
,对吗? SQL如下:
select regexp_replace('12F123f,123asfH 0DB68ZZ,AG12453',' ',',') as result;
+----------------------------------+--+
| result |
+----------------------------------+--+
| 12F123f,123asfH,0DB68ZZ,AG12453 |
+----------------------------------+--+
答案 1 :(得分:1)
我认为您可以使用
select regexp_replace('12345 12456,12345 123', '(?!^)[\\s,]+([^\\s,]+)', ',$1')
请参见regex demo
详细信息
(?!^)
-如果在字符串开头不匹配[\s,]+
-1个或多个空格或逗号([^\s,]+)
-捕获组1:除空格和逗号以外的一个或多个字符。 ,$1
替换项将匹配项替换为逗号和组1中的值。