# IsRegEx - スクリプトおよびチャート関数

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` の各値が有効な正規表現であるかどうかを確認するための 2 つの計算された項目。

  * `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)

#### チャートの数式と結果

概要

この例では、データモデルに入力文字列のセットをロードし、正規表現の有効性を評価する 2 つの計算軸とともにテーブルに追加します。2 つの計算軸は、同じ情報を異なる方法で伝えます。

データ ロード エディター を開き、次のロード スクリプトを新しいセクションに追加します。

ロード スクリプトには、有効な正規表現である場合も、そうでない場合もある入力文字列を含む項目 `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/ja-JP/sense/November2025/Subsystems/Hub/Content/Sense_Hub/Scripting/regular-expressions-qlik-analytics.htm)