Skip to main content

工作流字符串函数

字符串函数对文本数据执行操作。使用字符串函数清理数据、将数据转换为其他格式或大小写、对数据进行度量计算或执行其他操作。字符串函数只能用于字符串数据类型。

包含

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 there

  • StripQuotes("'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”。