Я использую HANA и пытаюсь создать новый столбец на основе следующего:
Regex Example 1: SUBSTR_REGEXPR('([PpSs][Tt][Ss]?\w?\d{2,6})' in "TEXT") as "Location"
Как получить этот результат, чтобы он возвращал все результаты, а не только первый?Повторяется ли строчная агг этого выражения?В каждом текстовом поле (в каждой строке) может быть не более 6 совпадений.
Regex Пример 1 Токовый выход:
Row Text Location(new column)
1 msdfmsfmdf PT2222, ST 43434 asdasdas PT2222
Regex Пример 1 Желаемый вывод:
Row Text Location(new column)
1 msdfmsfmdf PT2222, ST 43434 asdasdas PT2222, ST43434
У меня также есть различные форматы, поэтому мне нужно иметь возможность использовать несколько вариантов этого регулярного выражения, чтобы иметь возможность захватывать все совпадения и помещать их в новый столбец «Расположение» в качестве агрегированного разделителя.Возможно ли это?
В одном из других вариантов мне нужно было бы извлечь числа из этой серии:
"Locations 1, 2, 35 & 5 lkfaskjdlsaf .282 lkfdsklfjlkdsj 002"
Пока у меня есть:
Regex Example 2: "Locations (\d{1,2}.?){1,5}"
но я знаю, что это не работает.Когда я удаляю «Локации», он берет цифры, но также забирает .282 и 002, которые мне не нужны.
Regex Пример 2 Токовый вывод:
Row Text Location(new column)
1 msdfmsfmdf Locations 3,5,7 & 9" asdasdas Locations 3
Пример Regex2 Желаемый результат:
Row Text Location(new column)
1 msdfmsfmdf Locations 3,5,7 & 9" asdasdas 3,5,7,9
Иногда «Местоположение» в текстовом поле имеет формат, который потребует регулярное выражение примера 1, а иногда - формат, требующий регулярного выражения примера 2s, поэтому мне нужно иметьпоиск в регулярном выражении для обоих возможных форматов.
Example 3 Regex in Select Statement:
Select "Primary Key",
"Text",
STRING_AGG(SUBSTR_REGEXPR('([PpSs][Tt][Ss]?\w?\d{2,6})' OR '(\d{1,2}.?){1,5})' in "Text" ),',') as "Location"
FROM Table
Необходимо захватить оба формата местоположения примера 1 и 2, используя какое-либо условие ИЛИ в столбце создания SQL
Regex Example 3 Current Output:
Not working, no output
Regex Пример 3 ЖелаемыйВывод:
Row Text Location(new column)
1 msdfmsfmdf Locations 3,5,7 & 9" asdasdas 3,5,7,9
2 msdfmsfmdf PT2222, ST 43434 asdasdas PT2222, ST43434
Другие инструменты, к которым у меня есть доступ, это SAS и python.Любые альтернативные рекомендации для упрощения процесса приветствуются.Я уже пробовал в Таблице, но та же проблема с возвращением только первого матча.Их объединение делает вычисления очень медленными и очень длинными.
Пожалуйста, помогите мне разобраться в этом.Любая помощь очень ценится.
Спасибо.