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

IsRegEx() возвращает ответ на вопрос, является ли указанный текст правильным регулярным выражением.

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

Синтаксис:

IsRegEx (expr [, debug])

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

Аргументы

| Аргумент | Описание |
| --- | --- |
| expr | Строковое выражение, содержащее регулярное выражение для оценки. |
| debug | Необязательный аргумент. Если для этого аргумента указано значение, выражение возвращает текстовую подсказку, описывающую, как можно исправить неправильное регулярное выражение. |

Примеры функции

| Пример | Результат |
| --- | --- |
| `IsRegEx('[a-z]')` | Возвращает `-1` (true ― истина). |
| `IsRegEx(']0-1[', 1)` | Этот пример возвращает сообщение об ошибке с подсказкой, как исправить неправильное регулярное выражение `]0-1[`. |
| `IsRegEx('[a-z')` | Возвращает `0` (false ― ложь). Сообщение об ошибке не отображается, поскольку аргумент debug не указан. |

## Когда это следует использовать

Можно использовать IsRegEx(), чтобы проверить правильность написанных регулярных выражений в Qlik Sense. Например, можно загрузить таблицу в приложение с входным текстом и оценкой, является ли он допустимым регулярным выражением.

## Пример 1: загрузка допустимости регулярного выражения в модель данных

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

#### Скрипт загрузки и результаты

Обзор

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

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

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

* Два вычисляемых поля для проверки того, является ли каждое значение в `reg_exp` допустимым регулярным выражением или нет:

  * `validity_no_hint`: отображает `-1` (true ― истина), если регулярное выражение является допустимым, и 0 (false ― ложь), если оно недопустимо.

  * `validity_with_hint`: отображает -1 (true ― истина), если регулярное выражение является допустимым. Если регулярное выражение является недопустимым, автоматически генерируется сообщение об ошибке, в котором описаны проблемы во входном тексте и возможные способы их устранения.

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

```
[Expression Validity]:
	Load
		*,
		IsRegEx(reg_exp) as validity_no_hint,
		IsRegEx(reg_exp,1) as validity_with_hint
		;
Load
*
Inline
`
reg_exp
[a-z]+
([a-z)(0-9)+
abcdefg|[0-7
\$|¢(0-9)
`;
```

Результаты

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

* `
  reg_exp`

* `validity_no_hint`

* `validity_with_hint`

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

| reg\_exp | validity\_no\_hint | validity\_with\_hint |
| --- | --- | --- |
| ([a-z)(0-9)+ | 0 | -1 |
| [a-z]+ | -1 | Текст подсказки (генерируемый автоматически) |
| \$\|¢(0-9) | -1 | Текст подсказки (генерируемый автоматически) |
| abcdefg\|[0-7 | 0 | -1 |

## Пример 2: загрузка только допустимого регулярного выражения в модель данных

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

#### Скрипт загрузки и результаты

Обзор

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

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

* Поле `reg_exp`, содержащее входные строки, которые могут быть или не быть допустимыми регулярными выражениями. Это поле содержится в таблице с именем `Regular Expressions`.

* Предложение where, которое загружает записи в модель данных только в том случае, если вводимые данные являются допустимым регулярным выражением.

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

```
[Regular Expressions]:

Load
*
Inline
`
reg_exp
[a-z]+
([a-z)(0-9)+
abcdefg|[0-7
\$|¢(0-9)
`
WHERE
IsRegEx(reg_exp)=True()
;
```

Результаты

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

* `
  reg_exp`

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

| reg\_exp |
| --- |
| [a-z]+ |
| \$\|¢(0-9) |

`[a-z]+` и `\$|¢(0-9)` являются допустимыми регулярными выражениями, поэтому они загружены в модель данных. `([a-z)(0-9)+` и `abcdefg|[0-7` не являются допустимыми регулярными выражениями, поэтому они не загружены в модель данных.

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

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

#### Выражения диаграммы и результаты

Обзор

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

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

Скрипт загрузки содержит поле `reg_exp`, содержащее входные строки, которые могут быть или не быть допустимыми регулярными выражениями. Это поле содержится в таблице с именем `Regular Expressions`.

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

```
[Regular Expressions]:

Load
*
Inline
`
reg_exp
[a-z]+
([a-z)(0-9)+
abcdefg|[0-7
\$|¢(0-9)
`;
```

Результаты

Выполните следующие действия.

1. Загрузите данные и откройте лист. Создайте новую таблицу. Добавьте `reg_exp` как измерение.

2. Затем добавьте следующее вычисляемое измерение:

   `=IsRegEx(reg_exp)`

   Это базовое выражение диаграммы, которое показывает `-1` (true ― истина), если входные данные являются допустимым регулярным выражением, и `0` (false ― ложь), если это не так.

3. Добавьте еще одно вычисляемое измерение:

   `=if(IsRegEx(reg_exp), 'Valid regex', 'Invalid regex')`

   Это условное выражение, которое предлагает более подробную информацию о допустимости вводимых данных.

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

| reg\_exp | =IsRegEx(reg\_exp) | =if(IsRegEx(reg\_exp), 'Valid regex', 'Invalid regex') |
| --- | --- | --- |
| ([a-z)(0-9)+ | 0 | Invalid regex |
| [a-z]+ | -1 | Valid regex |
| \$\|¢(0-9) | -1 | Valid regex |
| abcdefg\|[0-7 | 0 | Invalid regex |

## Подробнее

* [Работа с регулярными выражениями в скриптах загрузки и выражениях диаграммы](https://help.qlik.com/ru-RU/sense/November2025/Subsystems/Hub/Content/Sense_Hub/Scripting/regular-expressions-qlik-analytics.htm)