

这是新的《CloudFormation 模板参考指南》**。请更新您的书签和链接。有关开始使用 CloudFormation 的帮助，请参阅《AWS CloudFormation 用户指南》[https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)。

# `Fn::Split`
<a name="intrinsic-function-reference-split"></a>

要将字符串拆分为一列字符串值，以便从结果字符串列表中选择一个元素，请使用 `Fn::Split` 内部函数。用分隔符 (例如逗号 `,`) 指定拆分位置。在您拆分字符串后，请使用 [`Fn::Select`](intrinsic-function-reference-select.md) 函数选择特定的元素。

例如，如果将以逗号分隔的子网 ID 字符串导入您的堆栈模板，您可以在每个逗号的位置拆分字符串。在子网 ID 列表中，使用 `Fn::Select` 内部函数来指定资源的子网 ID。

## 声明
<a name="w2aac24c62b7"></a>

### JSON
<a name="intrinsic-function-reference-split-syntax.json"></a>

```
{ "Fn::Split" : [ "delimiter", "source string" ] }
```

### YAML
<a name="intrinsic-function-reference-split-syntax.yaml"></a>

完整函数名称的语法：

```
Fn::Split: [ delimiter, source string ]
```

短格式的语法：

```
!Split [ delimiter, source string ]
```

## Parameters
<a name="w2aac24c62b9"></a>

您必须指定两个参数。

分隔符  
确定源字符串划分位置的字符串值。

源字符串  
要拆分的字符串值。

## 返回值
<a name="w2aac24c62c11"></a>

字符串值的列表。

## 示例
<a name="w2aac24c62c13"></a>

以下示例演示了 `Fn::Split` 函数的行为。

### 简单列表
<a name="w2aac24c62c13b5"></a>

以下示例在每个竖条处拆分字符串 (`|`)。 函数返回 `["a", "b", "c"]`。

#### JSON
<a name="intrinsic-function-reference-split-example.json"></a>

```
{ "Fn::Split" : [ "|" , "a|b|c" ] }
```

#### YAML
<a name="intrinsic-function-reference-split-example.yaml"></a>

```
!Split [ "|" , "a|b|c" ]
```

 

### 空字符串值的列表
<a name="w2aac24c62c13b7"></a>

如果您用连续的分隔符拆分字符串，则结果列表将包含空字符串。以下示例显示了带有两个连续的分隔符和一个附加分隔符的字符串如何进行拆分。 函数返回 `["a", "", "c", ""]`。

#### JSON
<a name="w2aac24c62c13b7b5"></a>

```
{ "Fn::Split" : [ "|" , "a||c|" ] }
```

#### YAML
<a name="w2aac24c62c13b7b7"></a>

```
!Split [ "|" , "a||c|" ]
```

 

### 拆分已导入的输出值
<a name="w2aac24c62c13b9"></a>

以下示例拆分已导入的输出值，然后按照 `Fn::Select` 函数所指定的，从子网 ID 的结果列表中选择第三个元素。

#### JSON
<a name="w2aac24c62c13b9b5"></a>

```
{ "Fn::Select" : [ "2", { "Fn::Split": [",", {"Fn::ImportValue": "AccountSubnetIDs"}]}] }
```

#### YAML
<a name="w2aac24c62c13b9b7"></a>

```
!Select [2, !Split [",", !ImportValue AccountSubnetIDs]]
```

## 支持的函数
<a name="w2aac24c62c15"></a>

对于 `Fn::Split` 分隔符，不能使用任何函数。您必须指定字符串值。

对于值的 `Fn::Split` 列表，您可使用以下函数：
+ `Fn::Base64`
+ `Fn::FindInMap`
+ `Fn::GetAtt`
+ `Fn::GetAZs`
+ `Fn::If`
+ `Fn::ImportValue`
+ `Fn::Join`
+ `Fn::Select`
+ `Fn::Sub`
+ `Ref`