Вставьте запятую после каждого 7-го символа, используя регулярное выражение и куст sql

Вставьте запятую после каждого 7-го символа и убедитесь, что данные имеют запятую после каждого 7-го символа правильно, используя регулярное выражение в hive sql.

Также игнорировать пробел при выборе 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$")','')

Может select regexp_replace('12345 12456,12345 123', '(.{5})', '$1,')?

Wiktor Stribiżew 11.06.2019 11:02

@WiktorStribiżew Извините, если я не упомянул ранее, он должен игнорировать пробел при выборе 5-го символа. В вашем запросе он включает пробел.

bill_123 11.06.2019 11:06
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
2
2
230
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы просто хотите заменить пустой символ на ,, я прав? SQL, как показано ниже:

select regexp_replace('12F123f,123asfH 0DB68ZZ,AG12453',' ',',') as result;
+----------------------------------+--+
|              result              |
+----------------------------------+--+
| 12F123f,123asfH,0DB68ZZ,AG12453  |
+----------------------------------+--+

Нет, это были просто примерные данные. Я хочу вставить запятую после каждого 7-го символа. Игнорируйте пробелы при выборе 7-го символа.

bill_123 11.06.2019 11:08

@bill_123, хорошо, понял, дай мне попробовать.

Shawn.X 11.06.2019 11:08
Ответ принят как подходящий

Я думаю, вы можете использовать

select regexp_replace('12345 12456,12345 123', '(?!^)[\\s,]+([^\\s,]+)', ',$1')

См. демонстрация регулярных выражений

Подробности

  • (?!^) - нет совпадения, если в начале строки
  • [\s,]+ - 1 или более пробелов или запятых
  • ([^\s,]+) - Группа захвата 1: один или несколько символов, кроме пробелов и запятых.

Замена ,$1 заменяет совпадение запятой и значением в группе 1.

Идеально. Спасибо.

bill_123 11.06.2019 11:28

Другие вопросы по теме