SPLIT( ) 函数

从字符串中返回一个指定的段。

语法

SPLIT(字符串分隔符 <,文本识别符>)

参数

名称 类型 描述
字符串 字符 要从中提取该段的值。
分隔符 字符

该段的分隔符。

要了解更多信息,请参考分隔符工作原理

数值

要提取的段。

请使用一个数字来指定要提取的段。例如,要提取第三个段,请指定 3

文本识别符

可选

字符

指示文本段开头和结尾的字符。

如果分隔符出现在成对的文本限定符集合内,则它被读取为文本而非分隔符。

必须将文本限定符放在引号中。必须将单引号文本限定符放在双引号中,将双引号文本限定符放在单引号中。

提示

使用保留分隔符和文本限定符的导入源数据时,该可选参数可能是有用的。

输出

字符。

示例

基本示例

逗号分隔段

返回 "seg1":

SPLIT("seg1,seg2,seg3", ",", 1)

返回 "seg3":

SPLIT("seg1,seg2,seg3", ",", 3)

返回 ""(第三个段是空的):

SPLIT("seg1,seg2,,seg4", ",", 3)

多字符和空格定界符

返回 "seg3":

SPLIT("seg1/*seg2/*seg3", "/*", 3)

返回 "Doe":

SPLIT("Jane Doe", " ", 2)

用文本限定符将定界符转义

返回 "Doe, Jane",其中包括一个被读取为文本而不是分隔符的逗号:

SPLIT('"Doe, Jane","Smith, John"', ",", 1, '"')

高级示例

从信用卡号中提取数字

使用 SPLIT( ) 命令从信用卡号中删除短横线。

使用变量捕捉信用卡号的各个段,然后在一个附加变量中将各个段连接起来。

ASSIGN seg1 = SPLIT("4150-2222-3333-4444", "-", 1)
ASSIGN seg2 = SPLIT("4150-2222-3333-4444", "-", 2)
ASSIGN seg3 = SPLIT("4150-2222-3333-4444", "-", 3)
ASSIGN seg4 = SPLIT("4150-2222-3333-4444", "-", 4)
ASSIGN ccNum = seg1 + seg2 + seg3 + seg4

ccNum 的值是 "4150222233334444"。

该示例阐述了 SPLIT( ) 函数的应用,但请注意,使用 EXCLUDE( ) 函数可更有效地删除短横线。

备注

工作原理

SPLIT( ) 函数根据分隔符(例如空格或逗号)将字符数据分割为数个段,并返回指定的段。

何时使用 SPLIT( )

使用 SPLIT( ) 函数可从记录或域中提取特定的数据段。在每个记录或域中,该段必须出现在相同位置。

分隔符工作原理

分隔符在源字符串中限定或指示数据段。

在包含多个段的字符串中,大多数段出现在两个分隔符之间。但是,第一个段的前面可能不具有分隔符,而最后一个段的后面可能不具有分隔符。

例如:

SPLIT("seg1,seg2,seg3", ",", 1)

如果源字符串以分隔符开始,则该分隔符之后的段被视为第 2 段。

返回 "seg1":

SPLIT(",seg1,seg2,seg3", ",", 2)

区分大小写

如果分隔符文本限定符指定的字符同时具有大写和小写形式,则使用的大小写必须匹配该数据中分隔符或文本限定符的大小写。

相关函数

SPLIT( ) 和 SUBSTR( ) 都从一个更长的源字符串返回一个数据段。

  • SPLIT( ) 基于一个分隔符识别该段。
  • SUBSTR( ) 基于一个数值字符位置识别该段。
ACL 脚本指南 14.1