# KeepChar — функция скриптa и диаграммы

KeepChar() возвращает строку, состоящую из символов в первой строке, которые соответствуют символам во второй строке. Эта функция чувствительна к регистру.

Синтаксис:

KeepChar(text, keep\_chars)

Возвращаемые типы данных: string

Аргументы

| Аргумент | Описание |
| --- | --- |
| text | Оригинальная строка. |
| keep\_chars | Строка, содержащая символы в text, которые необходимо сохранить. Этот аргумент чувствителен к регистру. |

Пример: выражения диаграммы

| Пример | Результат |
| --- | --- |
| `KeepChar ( 'a1b2c3','123' )` | Возвращает `123` |
| `KeepChar  ( 'a1b2c3','1234' )` | Возвращает `123` |
| `KeepChar  ( 'a1b22c3','1234' )` | Возвращает `1223` |
| `KeepChar( 'a1b2c3','312' )` | Возвращает `123` |

## Пример. Основы использования функции KeepChar

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/KeepChar.htm)

#### Выражение диаграммы

Обзор

Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки в новый раздел.

Скрипт загрузки содержит следующее:

* 

  Набор данных, который загружается в таблицу данных под именем `Example`.

* 

  Следующие поля в таблице данных:

  * `InputText`, содержащий исходную текстовую строку, подлежащую обработке.

  * `CharsToKeep`, содержащий список символов исходной текстовой строки, которые нужно сохранить после обработки.

Скрипт загрузки

```
Example:
Load * inline [
InputText, CharsToKeep
'a1b2c3', '123'
'a^b^c', 'abc'
'A^b^c', 'abc'
];
```

Результаты

Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:

* `InputText`
* `CharsToKeep`

Создайте следующее вычисляемое измерение:

* `=KeepChar(InputText, CharsToKeep)`, чтобы вычислить символы в `InputText`, которые совпадают с символами в `CharsToKeep`.

Результирующая таблица

| InputText | CharsToKeep | KeepChar(InputText, CharsToKeep) |
| --- | --- | --- |
| a1b2c3 | 123 | 123 |
| a^b^c | 'abc' | 'abc' |
| A^b^c | 'abc' | bc |

Столбец `KeepChar(InputText, CharsToKeep)` возвращает только те символы в `InputText`, которые точно совпадают с символами в `CharsToKeep`. Например, третья строка возвращает `bc`, поскольку это единственные символы в `InputText`, которые совпадают с символами в `CharsToKeep`. Символ `A` в верхнем регистре не возвращается, поскольку элементы в `CharsToKeep` только в нижнем регистре.

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/KeepChar.htm)

#### Скрипт загрузки

Следующий код показывает, как использовать эту функцию в скрипте загрузки.

```
Example:
Load
*,
keepchar(String1, String2) as KeepChar;
Load * inline [
String1, String2
'a1b2c3', '123'
];
```

Результирующая таблица

| String1 | String2 | KeepChar |
| --- | --- | --- |
| a1b2c3 | 123 | 123 |

## Пример. Сценарий использования функции KeepChar для разбора неструктурированного текста

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/KeepChar.htm)

#### Выражение диаграммы

Обзор

В этом примере функция используется для разбора неструктурированного текста (буквы, цифры и символы) и получения структурированного результата, в котором сохраняются только цифровые символы.

Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки в новый раздел.

Скрипт загрузки содержит следующее:

* 

  Набор данных, который загружается в таблицу данных под именем `Example`.

* 

  Следующие поля в таблице данных:

  * `InputText`, содержащий исходную текстовую строку, подлежащую обработке.

  * `CharsToKeep`, содержащий список символов исходной текстовой строки, которые нужно сохранить после обработки.

Скрипт загрузки

```
Example:
Load * inline [
InputText, InputCategory, CharsToKeep
'The numeric code for input processing is 123-456|789.', 'Code', '0123456789'
'Delivery of batch number: 333*456789.', 'Batch', '0123456789'
'Find the goods received in bay 16a', 'Bay', '0123456789'
];
```

Результаты

Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:

* `InputText`
* `CharsToKeep`

Создайте следующее вычисляемое измерение:

* `=KeepChar(InputText, CharsToKeep)`, чтобы вычислить символы в `InputText`, которые совпадают с символами в `CharsToKeep`.

Результирующая таблица

| InputText | CharsToKeep | KeepChar(InputText, CharsToKeep) |
| --- | --- | --- |
| Delivery of batch number: 333\*456789 (Доставка партии номер 333\*456789) | 0123456789 | 333456789 |
| Find the goods received in bay 16a (Полученные товары находятся в ячейке 16a) | 0123456789 | 16 |
| The numeric code for input processing is 123-456\|789 (Цифровой код для обработки ввода: 123-456\|789) | 0123456789 | 123456789 |

Сравните вывод функции `KeepChar` с исходными значениями строк `InputText`, загруженными в скрипт. Функция `KeepChar` успешно удалила все нечисловые символы из входного текста.

## Подробнее

* [PurgeChar — функция скриптa и диаграммы](https://help.qlik.com/ru-RU/sense/November2025/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/PurgeChar.htm)