mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-29 19:12:03 +00:00
75 lines
3.7 KiB
Markdown
75 lines
3.7 KiB
Markdown
# Функции разбиения и слияния строк и массивов {#funktsii-razbieniia-i-sliianiia-strok-i-massivov}
|
||
|
||
## splitByChar(separator, s) {#splitbycharseparator-s}
|
||
|
||
Разбивает строку на подстроки, используя в качестве разделителя separator.
|
||
separator должен быть константной строкой из ровно одного символа.
|
||
Возвращается массив выделенных подстрок. Могут выделяться пустые подстроки, если разделитель идёт в начале или в конце строки, или если идёт более одного разделителя подряд.
|
||
|
||
## splitByString(separator, s) {#splitbystringseparator-s}
|
||
|
||
То же самое, но использует строку из нескольких символов в качестве разделителя. Строка должна быть непустой.
|
||
|
||
## arrayStringConcat(arr\[, separator\]) {#arraystringconcatarr-separator}
|
||
|
||
Склеивает строки, перечисленные в массиве, с разделителем separator.
|
||
separator - необязательный параметр, константная строка, по умолчанию равен пустой строке.
|
||
Возвращается строка.
|
||
|
||
## alphaTokens(s) {#alphatokenss}
|
||
|
||
Выделяет подстроки из подряд идущих байт из диапазонов a-z и A-Z.
|
||
Возвращается массив выделенных подстрок.
|
||
|
||
**Пример:**
|
||
|
||
``` sql
|
||
SELECT alphaTokens('abca1abc')
|
||
```
|
||
|
||
``` text
|
||
┌─alphaTokens('abca1abc')─┐
|
||
│ ['abca','abc'] │
|
||
└─────────────────────────┘
|
||
```
|
||
|
||
## extractAllGroups(text, regexp) {#extractallgroups}
|
||
|
||
Выделяет все группы из неперекрывающихся подстрок, которые соответствуют регулярному выражению.
|
||
|
||
**Синтаксис**
|
||
|
||
``` sql
|
||
extractAllGroups(text, regexp)
|
||
```
|
||
|
||
**Параметры**
|
||
|
||
- `text` — [String](../data-types/string.md) или [FixedString](../data-types/fixedstring.md).
|
||
- `regexp` — Регулярное выражение. Константа. [String](../data-types/string.md) или [FixedString](../data-types/fixedstring.md).
|
||
|
||
**Возвращаемые значения**
|
||
|
||
- Если найдена хотя бы одна подходящая группа, функция возвращает столбец вида `Array(Array(String))`, сгруппированный по идентификатору группы (от 1 до N, где N — количество групп с захватом содержимого в `regexp`).
|
||
|
||
- Если подходящих групп не найдено, возвращает пустой массив.
|
||
|
||
Тип: [Array](../data-types/array.md).
|
||
|
||
**Пример использования**
|
||
|
||
Запрос:
|
||
|
||
``` sql
|
||
SELECT extractAllGroups('abc=123, 8="hkl"', '("[^"]+"|\\w+)=("[^"]+"|\\w+)');
|
||
```
|
||
|
||
Результат:
|
||
|
||
``` text
|
||
┌─extractAllGroups('abc=123, 8="hkl"', '("[^"]+"|\\w+)=("[^"]+"|\\w+)')─┐
|
||
│ [['abc','123'],['8','"hkl"']] │
|
||
└───────────────────────────────────────────────────────────────────────┘
|
||
```
|
||
[Оригинальная статья](https://clickhouse.tech/docs/ru/query_language/functions/splitting_merging_functions/) <!--hide-->
|