工作流字符串函数
字符串函数对文本数据执行操作。使用字符串函数清理数据、将数据转换为其他格式或大小写、对数据进行度量计算或执行其他操作。字符串函数只能用于字符串数据类型。
包含
Contains(String, Target, CaseInsensitive=1):在一个字符串中搜索某一字符串的匹配项。如果字符串 (String) 包含目标 (Target),则返回 True,否则返回 False。
示例
Contains('123ABC', 'ABC') 返回 True。
Contains('123ABC', 'abc') 返回 True。
Contains('123ABC', 'abc', 0) 返回 False。
CountWords
CountWords(string):返回指定字符串中的单词计数。单词由空格分隔的字符定义。
注意
此函数不适用于 Live Query for Databricks。
示例
CountWords("Basic Variables Households")返回 3。
CountWords("Basic Variables Age:Female (Pop)Age 1") 返回 5。
EndsWith
EndsWith(String, Target, CaseInsensitive=1):检查字符串是否以特定的字符串结尾。如果 (String) 以 (Target) 结尾,则返回 True;否则,返回 False。默认情况下不区分大小写。
示例
EndsWith('123ABC', 'ABC')返回 True。
EndsWith('123ABC', 'abc')返回 True。
EndsWith('123ABC', 'abc', 0)返回 False。
FindNth
FindNth(Initial String, Target, Instance):在初始字符串中查找目标字符串的实例(第 n 次出现),并返回实例的位置(索引从 0 开始)。该函数区分大小写,而且不接受负参数。
重要
在云原生模式下,目标和实例必须是静态字面值。
示例
FindNth("Hello World","o",2)返回 7。该函数在提供的字符串中查找“o”的第 2 个实例,并返回以 0 为始的索引位置,在本例中为 7。
FindNth("Hello World","World",1)返回 6。该函数在提供的字符串中查找“World”的第 1 个实例,并返回第一个字符以 0 为始的索引位置,在本例中为 6。
FindNth("Hello World","o",1.8)返回 7。该函数在提供的字符串中查找“o”的第 2 个实例(将 1.8 四舍五入到最接近的整数),并返回第 2 个字符以 0 为始的索引位置,在本例中为 7。
FindNth("Hello World","world",1)返回 -1。该函数在提供的字符串中查找“world”的第 1 个实例,并返回第一个字符以 0 为始的索引位置,在本例中为 -1(由于区分大小写而未找到匹配项)。
FindNth("Hello World","l",0)返回 -1。该函数在提供的字符串中查找“l”的第 0 个实例,并返回以 0 为始的索引位置,在本例中为 -1(未找到,因为第 0 个位置不存在)。
FindNth("Hello World","l",-1)返回 -1。负参数不适用,因此该函数返回 -1(未找到)。
FindNth("Hello World", Null(), 1) 返回 -1。未找到 Null 和空值。
FindNth(Hello world, "l", 1)返回错误。该函数要求前 2 个参数为字符串。
FindString
FindString 函数区分大小写。
FindString(String,Target):搜索一个字符串 (String) 中特定字符串 (Target) 的匹配项,并返回特定字符串在字符串中的数字位置。
返回字符串 (String) 中首个目标 (Target) 的索引(从 0 开始)。如果不存在匹配项,则返回 -1。
示例
FindString([Name], "John") 在字符串以 John 开头时返回 0,否则返回 -1。
IF (FINDSTRING([Name], "John") =0) THEN "John Smith" ELSE "Other" ENDIF 在字符串包含 John 时返回 John Smith,不包含时返回 Other。
GetLeft
GetLeft(String, Delimiter): 返回所提供的字符串 (String) 的左侧部分,直到首次出现指定的 1 个或多个分隔符 (Delimiter) 为止。在云原生模式下,分隔符必须是静态字面值。
注意
分隔符运算符区分大小写。如果指定“a”作为分隔符,则该函数只能使用“a”作为分隔符,而不能使用“A”。
示例
GetLeft("Automated Analytics for All", " ") 返回“Automated”。
GetLeft("Enable fast, confident decisions across the enterprise.", ",") 返回“Enable fast”。
GetPart
GetPart(String, Delimiter, Index):使用指定的 1 个或多个分隔符 (Delimiter) 将字符串 (String) 划分为多个子字符串,并返回索引 (Index) 中指定位置的子字符串。在云原生模式下,分隔符必须是静态字面值。
此函数使用从 0 开始的索引。例如,如果索引为 2,则函数从索引 2 的位置返回字符串,即返回第 3 个子字符串。
注意
分隔符运算符区分大小写。如果指定“a”作为分隔符,则该函数只能使用“a”作为分隔符,而不能使用“A”。
示例
GetPart("Automated Analytics for All", " ", 1) 返回“Analytics”。
GetPart("Automated Analytics for All", " ", 0) 返回“Automated”。
GetPart("Enable fast, confident decisions across the enterprise.", ", ", 5) 返回“across”。请注意,此示例使用 2 个分隔符,即逗号和空格。该函数在遇到任一分隔符时拆分字符串。
GetPart("January 1, 2023", " ", 2) 返回“2023”。
GetRight
GetRight(String, Delimiter):返回字符串 (String) 在指定的 1 个或多个分隔符 (Delimiters) 首次出现的右侧部分。在云原生模式下,分隔符必须是静态字面值。
注意
分隔符运算符区分大小写。如果指定“a”作为分隔符,则该函数只能使用“a”作为分隔符,而不能使用“A”。
示例
GetRight("Automated Analytics for All", " ")返回“Analytics for All”。
GetRight("Enable fast, confident decisions across the enterprise.", ",") 返回“confident decisions across the enterprise”。(注意返回的 confident 前面的空格)。
GetWord
GetWord(string, n):返回字符串中的第 N 个(索引从 0 开始)单词。字指的是由空格分隔的字符集合。索引从 0 开始,表示第一个字的位置位于 0。
示例
GetWord("Basic Variables Households", 0)返回“Basic”。
GetWord("Basic Variables Households", 1)返回“Variables”。
Left
Left(String, len):返回字符串 (String) 中最左边长度为 (len) 的字符。如果 len 小于 0 或大于字符串 (String) 的长度,则字符串保持不变。
示例
Left("92688", 3) 返回值“926”。
Length
Length(String):返回字符串 (String) 的长度。
示例
Length("92688") 返回值 5。
LowerCase
LowerCase(String):将字符串转换为小写。
示例
LowerCase("M1P 1G6")返回"m1p 1g6"。
PadLeft
PadLeft(String, len, char):将指定的字符向左填充字符串,直到字符串达到指定长度为止。如果用于填充的字符 (char) 超过一个字符,则仅使用第一个字符。
示例
PadLeft("M", 4, "x")返回“xxxM”。
PadRight
PadRight(String, len, char):将指定的字符向右填充字符串,直到字符串达到指定长度为止。如果用于填充的字符 (char) 超过一个字符,则仅使用第一个字符。
示例
PadRight("M", 4, "x")返回“Mxxx”。
REGEX_CountMatches
REGEX_CountMatches(String,pattern,icase):返回字符串中与模式匹配的项计数。
icase 是可选参数。使用了此参数时,大小写必须匹配。默认情况下,icase=1 表示忽略大小写。如果设置为 0,则大小写必须匹配。
注意
此函数不适用于 Live Query for Databricks。
REGEX_Match
REGEX_Match(String,pattern,icase):搜索字符串中正则表达式的匹配项。
判断字符串是否从第一个字符到最后一个字符与模式匹配。
如果匹配不一定始于字符串之首,则在模式开头加上 “.*”。
如果匹配项不一定在字符串之尾,则在模式结尾加上 “.*”。
有关如何正确构建正则表达式的详细信息,请参阅 Boost Regex Perl 正则表达式语法页面。
icase 是可选参数。使用了此参数时,大小写必须匹配。默认情况下,icase=1 表示忽略大小写。如果设置为 0,则大小写必须匹配。
注意
此函数不适用于 Live Query for Databricks。
示例
REGEX_Match("123-45-6789", "\d{3}-\d{2}-\d{4}")返回 -1 (True)。
REGEX_Replace
REGEX_Replace(String, pattern, replace, icase):返回 RegEx 查找模式产生的字符串,然后替换字符串。
replace 参数可以是指定值(如下所示),也可以是一个标记的组(如“$1”)。确保标记的组用双引号括起来。
icase 是可选参数。使用了此参数时,大小写必须匹配。
默认情况下 icase=1,表示忽略大小写。
如果设置为 0,则大小写必须匹配。
注意
此函数不适用于 Live Query for Databricks。
示例
REGEX_Replace("Don't reveal your Social Security number, 123-45-6789","\d{3}-\d{2}-\d{4}", "CLASSIFIED") 返回“Don't reveal your Social Security number, CLASSIFIED”。
REGEX_Replace("Change all domain names from alteryx@Alteryx.com","@.*\.", "@extendthereach.") 返回“Change all domain names from alteryx@extendthereach.com”。
REGEX_Replace("25 test","(\d+)\s.*","$1") 返回 25。
替换
Replace(String, Target, Replacement):使用字符串 (Replacement) 替换出现的每一个字符串 (Target),再返回字符串 (String)。
示例
Replace("Good judgment comes from experience", "experience", "awareness") 返回“Good judgement comes from awareness”
替换字符
ReplaceChar(String, y, z):将每个出现的字符 (y) 替换为字符 (z) 后返回字符串 (String)。如果替换字符 (z) 具有一个以上的字符,则仅使用第一个字符。如果 (z) 为空,则每个与 (y) 中的任何一个字符匹配的字符 (String) 将被移除。
示例
ReplaceChar("abcdefb", "b", "_")返回“a_cdef_”。
ReplaceChar("@a#b%c", "@,#,%", "_")返回“_a_b_c”。
ReplaceFirst
ReplaceFirst(String, Target, Replacement):使用字符串 (Replacement) 替换字符串 (Target) 的第一个匹配项后,返回字符串 (String)。
示例
ReplaceFirst("abcdefb", "b", "_")返回“a_cdefb”。
ReverseString
ReverseString(String):反转字符串中的所有字符。
注意
此函数不适用于 Live Query for Databricks。
示例
ReverseString("abcdefb") 返回“bfedcba”。
Right
Right(String, len):返回字符串的最后 (len) 个字符。如果 len 小于 0 或大于 String 的长度,则字符串保持不变。
示例
Right("92688", 3) 返回值“688”。
StartsWith
StartsWith(String, Target, CaseInsensitive=1):检查字符串是否以特定的字符串开头。如果字符串 String 以特定字符串 Target 开头,则返回 True,否则返回 False。
示例
StartsWith('ABC123', 'ABC') 返回 True。
StartsWith('ABC123', 'abc') 返回 True。
StartsWith('ABC123', 'abc', 0) 返回 False。
STRCSPN
STRCSPN(String, y):返回字符串 (String) 开头连续的、不含字符串 (y) 中字符的字符串长度。
示例
STRCSPN("Bob's Amaco", "~!@#$%^&*'()") 返回 3。这对于测试字符串中有没有标点符号非常有用。
StripQuotes
StripQuotes(String):移除字符串结尾的一组成对的引号或单引号。
示例
StripQuotes("Hello there")返回 Hello thereStripQuotes("'Hello there,' she said.")返回 'Hello there,' she said.StripQuotes('"Hello there," she said.')返回 "Hello there," she said.
STRSPN
STRSPN(String, y):返回由字符串 (y) 中的字符组成的字符串 (String) 的初始段的长度。
示例
STRSPN("3034408896x105", "0123456789") 返回 10。这对于测试字符串是否包含一组指定字符非常有用。
Substring
Substring(String, start, length):返回字符串 (String) 从 (start) 位置开始提取长度等于 (length) 的子字符串(如果提供了长度)。
示例
Substring("949-222-4356", 4, 8) 返回“222-4356”。
Substring("949-222-4356", 4, 6) 返回“222-43”。
Substring("949-222-4356", 4) 返回“222-4356”。
TitleCase
TitleCase(String):将字符串转换为词首字母大写。
示例
TitleCase("john smith")返回 “John Smith”。
Trim
Trim(String, y):移除字符串(String)首部和尾部出现的 y 中的任意字符。Y 是可选项,默认为去掉空格。提示:在 TRIM 函数示例中,指定的字符将被去掉。字符顺序不重要。
示例
Trim("!see instructions!!!", "!") 返回“see instructions”。
Trim(" Test123 ") 返回“Test123”。
TrimLeft
TrimLeft(String, y):移除字符串 (String) 开头出现的字符串 (y) 中的字符。Y 是可选项,默认为去掉空格。
示例
TrimLeft("** special invitation ", " *") 返回“special invitation”。
TrimRight
TrimRight(String, y):移除字符串 (String) 末尾出现的字符串 (y) 中的字符。Y 是可选项,默认为去掉空格。
示例
TrimRight("John Smith ")返回 “John Smith”。
TrimRight("John Smith**","*")返回 “John Smith”。
虽然您可能传入一串字符进行修剪,但 TRIM 函数并不考虑字符的顺序,而是将该字符串视为一个“列表”。因此,它会修剪列表中的所有字符。如果您要替换字符串,请在表达式中使用REPLACE 函数或 REGEX 函数。
Uppercase
Uppercase(String):将字符串转换为大写。
示例
Uppercase("John Smith") 返回“JOHN SMITH”。