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( ) 基于一个数值字符位置识别该段。