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

TextBetween() は、区切り文字として指定された文字間で行われる入力文字列でのテキストを返します。

構文:

TextBetween(text, delimiter1, delimiter2[, n])

戻り値データ型： 文字列

引数

| 引数 | 説明 |
| --- | --- |
| text | 元の文字列。 |
| delimiter1 | text で検索する最初の区切り文字 (または文字列) を指定します。 |
| delimiter2 | text で検索する 2 番目の区切り文字 (または文字列) を指定します。 |
| n | 検索する区切り文字のペアのうち、出現する区切り文字を定義します。たとえば、2 という値は、delimiter1 が 2 回目に現れてから、delimiter2 が 2 回目に現れるまでの文字を返します。 |

例: チャートの数式

| 例 | 結果 |
| --- | --- |
| `TextBetween( '<abc>',  			'<', '>' )` | `abc` を返します |
| `TextBetween( '<abc><de>',   '<', '>',2 )` | `de` を返します |
| `TextBetween( 'abc', '<', '>' )` | `NULL` を返します<br><br>文字列に区切り文字が見つからない場合、`NULL`が返されます。 |
| `TextBetween( '<a<b', '<', '>' )` | `NULL` を返します<br><br>文字列に区切り文字が見つからない場合、`NULL`が返されます。 |
| `TextBetween( '<>',  			'<', '>' )` | 長さゼロの文字列を返します。 |
| `TextBetween( '<abc>',  			'<', '>', 2 )` | n は区切り文字の出現回数よりも大きいため、`NULL` を返します。 |

## 例 - TextBetween の基本

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

#### チャートの数式

概要

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

ロード スクリプトには次が含まれています:

* 「`Example`」というデータ テーブルにロードされるデータセット。

* データ テーブル内の 1 つの項目は `InputText` と呼ばれます。

ロード スクリプト

```
Example:
Load * inline [
InputText,
<abc><de>
<def><ghi><jk>
];
```

結果

データをロードしてシートを開きます。新しいテーブルを作成し、この項目を軸として追加します:

* ` InputText
                                   `

次の計算軸を作成します。

* `=TextBetween(InputText,'<','>')`、`InputText` 項目の区切り文字 `'<'` と `'>'` の間に現れる文字の最初のインスタンスを計算します。

* `=TextBetween(InputText,'<','>',2)`、`InputText` 項目の区切り文字 `'<'` と `'>'` の間に現れる文字の 2 番目のインスタンスを計算します。

Results table

| InputText | TextBetween(InputText,'&lt;','&gt;') | TextBetween(InputText,'&lt;','&gt;',2) |
| --- | --- | --- |
| &lt;abc&gt;&lt;de&gt; | abc | de |
| &lt;def&gt;&lt;ghi&gt;&lt;jkl&gt; | def | ghi |

最初の計算軸では、`TextBetween` 関数の出力が、区切り文字 `'<'` と `'>'` の間に現れる文字の最初のインスタンスを返します。例えば、1 行目は `abc` を返します。2 番目の計算軸では、`2` の `n` 引数があるため、区切り文字 `'<'` と `'>'` の間に現れる文字の 2 番目のインスタンスを返します。例えば、1 行目は `de` を返します。

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

#### ロード スクリプト

次のコードは、ロード スクリプトで関数を使用する方法を示しています。

```
Load *,
textbetween(Text,'<','>') as TextBetween,
textbetween(Text,'<','>',2) as SecondTextBetween;
Load * inline [
Text
<abc><de>
<def><ghi><jkl>];
```

結果テーブル

| テキスト | TextBetween | SecondTextBetween |
| --- | --- | --- |
| &lt;abc&gt;&lt;de&gt; | abc | de |
| &lt;def&gt;&lt;ghi&gt;&lt;jkl&gt; | def | ghi |

## 例 - TextBetween のシナリオ

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

#### チャートの数式

概要

データセットには、メール アドレスのデータ テーブルが含まれています。この例では、`TextBetween` 関数を使用して、アドレスから第 2 レベル ドメインを抽出します。

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

ロード スクリプトには次が含まれています:

* 「`Example`」というデータ テーブルにロードされるデータセット。

* データ テーブル内の次の項目:

  * `UserID`

  * `EmailAddress`

ロード スクリプト

```
Example:
Load * inline [
UserID, EmailAddress
1, alice@example.com
2, bob@sample.org
3, charlie@domain.net
];
```

結果

データをロードしてシートを開きます。新しいテーブルを作成し、これらの項目を軸として追加します:

* ` UserID
                                   `

* `EmailAddress`

次の計算軸を作成します。

* `=TextBetween(EmailAddress,'@', '.')` で、`EmailAddress` 項目内の文字 `'@'` と `'.'` の間のテキストを返します。

Results table

| UserID | EmailAddress | TextBetween(EmailAddress,'@', '.') |
| --- | --- | --- |
| 1 | alice@example.com | example |
| 2 | bob@sample.org | sample |
| 3 | charlie@domain.net | domain |

`TextBetween` 関数の出力は、指定された区切り文字 `'@'` と `'.'` の間のコンテンツを検索して、各ユーザー ID の第 2 レベル ドメインを返します。