3.7 KiB
Функции разбиения и слияния строк и массивов
splitByChar(separator, s)
Разбивает строку на подстроки, используя в качестве разделителя separator. separator должен быть константной строкой из ровно одного символа. Возвращается массив выделенных подстрок. Могут выделяться пустые подстроки, если разделитель идёт в начале или в конце строки, или если идёт более одного разделителя подряд.
splitByString(separator, s)
То же самое, но использует строку из нескольких символов в качестве разделителя. Строка должна быть непустой.
arrayStringConcat(arr[, separator])
Склеивает строки, перечисленные в массиве, с разделителем separator. separator - необязательный параметр, константная строка, по умолчанию равен пустой строке. Возвращается строка.
alphaTokens(s)
Выделяет подстроки из подряд идущих байт из диапазонов a-z и A-Z. Возвращается массив выделенных подстрок.
Пример:
SELECT alphaTokens('abca1abc')
┌─alphaTokens('abca1abc')─┐
│ ['abca','abc'] │
└─────────────────────────┘
extractAllGroups(text, regexp)
Выделяет все группы из неперекрывающихся подстрок, которые соответствуют регулярному выражению.
Синтаксис
extractAllGroups(text, regexp)
Параметры
text
— String или FixedString.regexp
— Регулярное выражение. Константа. String или FixedString.
Возвращаемые значения
-
Если найдена хотя бы одна подходящая группа, функция возвращает столбец вида
Array(Array(String))
, сгруппированный по идентификатору группы (от 1 до N, где N — количество групп с захватом содержимого вregexp
). -
Если подходящих групп не найдено, возвращает пустой массив.
Тип: Array.
Пример использования
Запрос:
SELECT extractAllGroups('abc=123, 8="hkl"', '("[^"]+"|\\w+)=("[^"]+"|\\w+)');
Результат:
┌─extractAllGroups('abc=123, 8="hkl"', '("[^"]+"|\\w+)=("[^"]+"|\\w+)')─┐
│ [['abc','123'],['8','"hkl"']] │
└───────────────────────────────────────────────────────────────────────┘