---
schema_version: "1"
id: 64e83e423ba16e66a6aadea03a683923c7b8980169228adcdd8af29a060896d3
title: splitBy
collection: mulesoft
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/mulesoft/current/ja-jp/dataweave/2.7/dw-core-functions-splitby.md
canonical_url: https://docs.mulesoft.com/jp/dataweave/2.7/dw-core-functions-splitby
source_site: docs.mulesoft.com
content_type: documentation
content_hash: 0bfb020a04e5edef78ecd7742395ac2cbadeeb834f41d87b8a956510bb9ab23c
description: MuleSoft Documentation Site
release: "2.7"
latest: false
---
# splitBy

## [](#splitby1)splitBy(text: String, regex: Regex): Array<String>

文字列の一部に一致する値に基づいて、文字列を文字列配列に分割します。一致部分は、返される配列から除外されます。

このバージョンの ​`splitBy`​ は、入力文字列を照合する Java 正規表現 (regex) を受け入れます。この正規表現は入力文字列内の任意の文字を照合できます。​`splitBy`​ は ​`joinBy`​ と逆の操作を実行します。

### [](#パラメーター)パラメーター

<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 25%;">
<col style="width: 75%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">名前</th>
<th class="tableblock halign-left valign-top">説明</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>text</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">分割する入力文字列。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>regex</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">文字列を分割するために使用する Java 正規表現。文字列のどの部分にも一致しない場合、この関数は、元の分割されていない文字列を配列で返します。</p></td>
</tr>
</tbody>
</table>

### [](#例)例

次の例では、Java 正規表現を使用して、アドレス帳内のピリオドとスラッシュでアドレス帳を分割します。正規表現はスラッシュの間にあります。

#### [](#ソース)ソース

```DataWeave
%dw 2.0
output application/json
---
"192.88.99.0/24" splitBy(/[.\/]/)
```

#### [](#出力)出力

```JSON
["192", "88", "99", "0", "24"]
```

### [](#例-2)例

次の例では、複数の正規表現を使用して入力文字列を分割します。最初の例では、​``\/^*.b./\ を使用して文字列を `​-b-​`` で分割します。2 番目の例では、`​/\s/​` を使用して文字列を空白スペースで分割します。3 番目の例では、正規表現 `​/^s/​` (最初の文字列が `​s​` の場合にその文字列に一致) が入力文字列 (`​[ "no match"]​`) の最初の文字に一致しないため、元の入力文字列を配列で返します (`​"no match"​`)。`​/^n../​` を使用する 4 番目の例では、`​"no match"​` の最初の文字に一致するため、`​[ "", "match"]​` を返します。\`​最後の例では、すべての数値と大文字を文字列から削除し、各小文字を配列に残します。区切り文字は出力からは削除されます。

#### [](#ソース-2)ソース

```DataWeave
%dw 2.0
output application/json
---
{ "splitters" : {
   "split1" : "a-b-c" splitBy(/^*.b./),
   "split2" : "hello world" splitBy(/\s/),
   "split3" : "no match" splitBy(/^s/),
   "split4" : "no match" splitBy(/^n../),
   "split5" : "a1b2c3d4A1B2C3D" splitBy(/^*[0-9A-Z]/)
  }
}
```

#### [](#出力-2)出力

```JSON
{
  splitters: {
    split1: [ "a", "c" ],
    split2: [ "hello", "world" ],
    split3: [ "no match" ],
    split4: [ "", "match" ],
    split5: [ "a", "b", "c", "d" ]
  }
}
```

### [](#例-3)例

次の例では、​`.`​ で数値を分割し、インデックスセレクター ​`[0]`​ を splitBy 関数の結果に適用します。splitBy では ​`["192", "88", "99", "0"]`​ が返されるため、インデックス \* セレクター ​`[0]`​ では配列の最初の要素 ("192") のみが返されます。

#### [](#ソース-3)ソース

```DataWeave
%dw 2.0
output application/json
---
("192.88.99.0" splitBy("."))[0]
```

#### [](#出力-3)出力

```JSON
"192"
```

### [](#例-4)例

次の例では、Java 正規表現を使用して入力文字列が正規表現に一致するすべてのポイントで ​`.`​ で文字列を分割します。正規表現ではバッククォート `` ` `` 間のピリオドは考慮されません。

#### [](#ソース-4)ソース

```DataWeave
%dw 2.0
output application/json
---
'root.sources.data.`test.branch.BranchSource`.source.traits' splitBy(/[.](?=(?:[^`]*`[^`]*`)*[^`]*$)/)
```

#### [](#出力-4)出力

```JSON
[
 "root",
 "sources",
 "data",
 "`test.branch.BranchSource`",
 "source",
 "traits"
]
```

## [](#splitby2)splitBy(text: String, separator: String): Array<String>

入力文字列の一部に一致する区切り文字列に基づいて、文字列を文字列配列に分割します。一致する文字列は、返される配列から除外されます。

区切り文字には、入力内の任意の文字を一致させることができます。​`splitBy`​ は ​`joinBy`​ と逆の操作を実行します。

### [](#パラメーター-2)パラメーター

<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 25%;">
<col style="width: 75%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">名前</th>
<th class="tableblock halign-left valign-top">説明</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>text</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">分割する文字列。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>separator</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">入力文字列を区切るために使用される文字列。文字列のどの部分にも一致しない場合、この関数は、元の分割されていない文字列を配列で返します。</p></td>
</tr>
</tbody>
</table>

### [](#例-5)例

次の例では、IP アドレスを含む文字列をそのピリオドで分割します。

#### [](#ソース-5)ソース

```DataWeave
%dw 2.0
output application/json
---
"192.88.99.0" splitBy(".")
```

#### [](#出力-5)出力

```JSON
["192", "88", "99", "0"]
```

### [](#例-6)例

最初の例 (​`splitter1`​) では、​`"a-b-c"`​ 内のハイフン (​`-`​) を使用して文字列を分割します。2 番目の例では、空の文字列 (​`""`​) を使用して文字列内の各文字 (空白スペースを含む) を分割します。3 番目の例では、入力文字列内のカンマ (​`,`​) に基づいて分割します。最後の例では、入力は分割されません。この関数は大文字と小文字を区別する、つまり、大文字の ​`NO`​ が入力文字列内の小文字の ​`no`​ と一致しないためです。 区切り文字は出力からは削除されます。

#### [](#ソース-6)ソース

```DataWeave
%dw 2.0
output application/json
---
{ "splitters" : {
    "split1" : "a-b-c" splitBy("-"),
    "split2" : "hello world" splitBy(""),
    "split3" : "first,middle,last" splitBy(","),
    "split4" : "no split" splitBy("NO")
   }
}
```

#### [](#出力-6)出力

```JSON
{
  splitters: {
    split1: [ "a","b","c" ],
    split2: [ "h","e","l","l","o","","w","o","r","l","d" ],
    split3: [ "first","middle","last"],
    split4: [ "no split"]
  }
}
```

## [](#splitby3)splitBy(text: Null, separator: Any)

`splitBy`​ を ​`null`​ 値に使用できるようにするヘルパー関数。

_DataWeave バージョン 2.4.0 で導入されました。_