2020-03-20 18:20:59 +00:00
# Функции разбиения и слияния строк и массивов {#funktsii-razbieniia-i-sliianiia-strok-i-massivov}
## splitByChar(separator, s) {#splitbycharseparator-s}
2017-03-12 17:58:51 +00:00
Разбивает строку на подстроки, используя в качестве разделителя separator.
separator должен быть константной строкой из ровно одного символа.
Возвращается массив выделенных подстрок. Могут выделяться пустые подстроки, если разделитель идёт в начале или в конце строки, или если идёт более одного разделителя подряд.
2020-03-20 18:20:59 +00:00
## splitByString(separator, s) {#splitbystringseparator-s}
2017-03-12 17:58:51 +00:00
Т о же самое, но использует строку из нескольких символов в качестве разделителя. Строка должна быть непустой.
2020-03-20 18:20:59 +00:00
## arrayStringConcat(arr\[, separator\]) {#arraystringconcatarr-separator}
2017-03-12 17:58:51 +00:00
Склеивает строки, перечисленные в массиве, с разделителем separator.
separator - необязательный параметр, константная строка, по умолчанию равен пустой строке.
Возвращается строка.
2020-03-20 18:20:59 +00:00
## alphaTokens(s) {#alphatokenss}
2017-03-12 17:58:51 +00:00
Выделяет подстроки из подряд идущих байт из диапазонов a-z и A-Z.
Возвращается массив выделенных подстрок.
2018-09-21 15:13:45 +00:00
**Пример:**
2020-03-20 18:20:59 +00:00
``` sql
2018-09-21 15:13:45 +00:00
SELECT alphaTokens('abca1abc')
2019-09-23 15:31:46 +00:00
```
2018-09-21 15:13:45 +00:00
2020-03-20 18:20:59 +00:00
``` text
2018-09-21 15:13:45 +00:00
┌─alphaTokens('abca1abc')─┐
│ ['abca','abc'] │
└─────────────────────────┘
2018-10-16 10:47:17 +00:00
```
2020-03-20 18:20:59 +00:00
2020-07-19 09:33:50 +00:00
## 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 ).
**Возвращаемые значения**
2020-07-19 09:37:09 +00:00
- Если найдена хотя бы одна подходящая группа, функция возвращает столбец вида `Array(Array(String))` , сгруппированный по идентификатору группы (от 1 до N, где N — количество групп с захватом содержимого в `regexp` ).
2020-07-19 09:33:50 +00:00
- Если подходящих групп не найдено, возвращает пустой массив.
Тип: [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"']] │
└───────────────────────────────────────────────────────────────────────┘
```
2020-01-30 10:34:55 +00:00
[Оригинальная статья ](https://clickhouse.tech/docs/ru/query_language/functions/splitting_merging_functions/ ) <!--hide-->