Functions for Splitting and Merging Strings and Arrays
splitByChar(separator, s)
Splits a string into substrings separated by a specified character. It uses a constant string separator
which consisting of exactly one character.
Returns an array of selected substrings. Empty substrings may be selected if the separator occurs at the beginning or end of the string, or if there are multiple consecutive separators.
Syntax
splitByChar(<separator>, <s>)
Parameters
separator
— The separator which should contain exactly one character. String.s
— The string to split. String.
Returned value(s)
Returns an array of selected substrings. Empty substrings may be selected when:
- A separator occurs at the beginning or end of the string;
- There are multiple consecutive separators;
- The original string
s
is empty.
Example
SELECT splitByChar(',', '1,2,3,abcde')
┌─splitByChar(',', '1,2,3,abcde')─┐
│ ['1','2','3','abcde'] │
└─────────────────────────────────┘
splitByString(separator, s)
Splits a string into substrings separated by a string. It uses a constant string separator
of multiple characters as the separator. If the string separator
is empty, it will split the string s
into an array of single characters.
Syntax
splitByString(<separator>, <s>)
Parameters
Returned value(s)
Returns an array of selected substrings. Empty substrings may be selected when:
- A non-empty separator occurs at the beginning or end of the string;
- There are multiple consecutive non-empty separators;
- The original string
s
is empty while the separator is not empty.
Example
SELECT splitByString(', ', '1, 2 3, 4,5, abcde')
┌─splitByString(', ', '1, 2 3, 4,5, abcde')─┐
│ ['1','2 3','4,5','abcde'] │
└───────────────────────────────────────────┘
SELECT splitByString('', 'abcde')
┌─splitByString('', 'abcde')─┐
│ ['a','b','c','d','e'] │
└────────────────────────────┘
arrayStringConcat(arr[, separator])
Concatenates the strings listed in the array with the separator.’separator’ is an optional parameter: a constant string, set to an empty string by default.
Returns the string.
alphaTokens(s)
Selects substrings of consecutive bytes from the ranges a-z and A-Z.Returns an array of substrings.
Example
SELECT alphaTokens('abca1abc')
┌─alphaTokens('abca1abc')─┐
│ ['abca','abc'] │
└─────────────────────────┘
extractAllGroups(text, regexp)
Extracts all groups from non-overlapping substrings matched by a regular expression.
Syntax
extractAllGroups(text, regexp)
Parameters
text
— String or FixedString.regexp
— Regular expression. Constant. String or FixedString.
Returned values
If the function finds at least one matching group, it returns
Array(Array(String))
column, clustered by group_id (1 to N, where N is number of capturing groups inregexp
).If there is no matching group, returns an empty array.
Type: Array.
Example
Query:
SELECT extractAllGroups('abc=123, 8="hkl"', '("[^"]+"|\\w+)=("[^"]+"|\\w+)');
Result:
┌─extractAllGroups('abc=123, 8="hkl"', '("[^"]+"|\\w+)=("[^"]+"|\\w+)')─┐
│ [['abc','123'],['8','"hkl"']] │
└───────────────────────────────────────────────────────────────────────┘