使用正则表达式和配置单元sql在每7个字符后插入逗号
使用配置单元sql中的正则表达式,在每7个字符后插入逗号,并确保数据在每7个字符后正确使用逗号 也可以在选择第7个字符时忽略空格 示例输入数据:使用正则表达式和配置单元sql在每7个字符后插入逗号,sql,regex,hive,Sql,Regex,Hive,使用配置单元sql中的正则表达式,在每7个字符后插入逗号,并确保数据在每7个字符后正确使用逗号 也可以在选择第7个字符时忽略空格 示例输入数据: 12F123f, 123asfH 0DB68ZZ, AG12453 112312f, 1212sfH 0DB68ZZ, AQ13463 输出: 12F123f,123asfH,0DB68ZZ,AG12453 112312f,1212sfH,0DB68ZZ,AQ13463 我尝试了下面的代码,但没有成功,并且正确插入了逗号 select regexp
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$")','')
您只想将空字符替换为
,
,对吗?SQL语句如下所示:
select regexp_replace('12F123f,123asfH 0DB68ZZ,AG12453',' ',',') as result;
+----------------------------------+--+
| result |
+----------------------------------+--+
| 12F123f,123asfH,0DB68ZZ,AG12453 |
+----------------------------------+--+
我想你可以用
select regexp_replace('12345 12456,12345 123', '(?!^)[\\s,]+([^\\s,]+)', ',$1')
见
详细信息
-如果在字符串开头,则不匹配(?!^)
-1个或多个空格或逗号[\s,]+
-捕获组1:除空格和逗号之外的一个或多个字符([^\s,]+)
,$1
替换用逗号和组1中的值替换匹配项。可能选择regexp_替换('12345 1245612345 123','(.{5}'),'$1',)
?@WiktorStribiżew抱歉,如果我之前没有提到,它应该在选择第5个字符时忽略空格。在您的查询中,它包含空格。不,这只是一个示例数据。我想在每7个字符后插入逗号。在选择第7个字符时忽略空格。@bill_123,好的,知道了,让我试试。完美。谢谢