文本函数
下面的列表显示了可在表达式中使用的文本函数。
函数 | 说明 |
---|---|
~= | 可以作为 If 或 Case 语句的一部分。如果 Arg2 正则表达式字符串与 Arg1 字符串匹配,则返回 true。 示例: If( "aab" ~= "a+" , "true", "false" ) Case when "aba" ~= ".a+$" then "true" else "false" end |
Concatenate(Arg1, ...) | 将所有参数连接(附加)成一个字符串。如果指定了一个参数,则结果为所有行的连接。如果指定了多个参数,则连接每个行。参数可以为任意类型,但将被转换为字符串。结果为字符串类型。Null 参数被忽略。 示例: Concatenate("April ", 20+1, "st") → "April 21st" Concatenate(null, "Ape")→ "Ape" Concatenate (null, null) →(空值) |
Find(Arg1, Arg2, Arg3) | 返回字符串 Arg1 在 Arg2 中的匹配项的索引。(可选)Arg3 指示要返回的匹配项。如果未提供第三个参数,则返回第一个匹配项。如果未找到匹配项,则将返回 0。 该搜索区分大小写。前两个参数为字符串类型,第三个参数和结果为整数类型。如果 Arg1 是空字符串,则返回 0。 示例: Find("lo", "Hello") → 4 Find("a", "Hello") → 0 Find("", "Hello") → 0 Find("", null) →(空值) If(Find("Pri 1", [Col1])>0, "Important", "Not important") Find("a", "ababab") → 1 Find("a", "ababab", 2) → 3 Find("a", "ababab", 10) → 0 |
Left(Arg1, Arg2) | 返回字符串 Arg1 的第一个 Arg2 字符。Arg1 和结果的类型为 string。Arg2 的类型为 real,但仅使用整数部分。如果 Arg2 > Arg1 的长度,则返回整个字符串。如果 Arg2 为负数,则会删除 Arg1 字符串右侧的 Arg2 个字符。 示例: Left("Daddy", 1) → "D" Left("Daddy", 3.99) → "Dad" Left("Daddy", 386) → "Daddy" Left("Daddy", -1) → "Dadd" |
Len(Arg1) | 返回 Arg1 的长度。Arg1 的类型为 string,结果的类型为 integer。 示例: Len("Hello") → 5 Len(null) →(空值) |
Lower(Arg1) | 返回转换成小写的 Arg1。Arg1 和结果的类型为 string。 |
Mid(Arg1, Arg2, Arg3) | 返回 Arg1 中以索引 Arg2 开头且长度为 Arg3 个字符的子字符串。Arg1 和结果的类型为 string。Arg2 和 Arg3 的类型为 real,但仅使用整数部分。如果 Arg2 > Len(Arg1),则返回空字符串。另外,如果 Arg2+Arg3 > Len(Arg1),则 Arg3 会调整为 1+Len(Arg1)-Arg2。如果 Arg2 或 Arg3 为负数,或者如果 Arg2 为零,则返回错误。 示例: Mid("Daddy", 2, 3) → "add" Mid("Daddy", 386, 4) → "" Mid("Daddy", 4, 386) → "dy" Mid("Daddy", -1, 2) →(空值) Mid("Daddy", 2, -1) →(空值) |
MostCommon(Arg1) | 返回指定列的最常用的值。如果多个值同样常用,则使用第一个值。 示例: MostCommon([Column]) |
NameDecode(Arg1) | 用解码后的字符替换所有子字符串代码。 TIBCO Spotfire® 中的列名称存储为 UTF-16 编码字符串。 示例: NameDecode("Column %02D") |
NameEncode(Arg1) | 对字符串中的字符进行编码,以使字符串仅包含与正则表达式 [.0-9a-zA-Z] 匹配的字符。 TIBCO Spotfire® 中的列名称存储为 UTF-16 编码字符串。 示例: NameEncode("Column £") |
Repeat | 将重复某字符串指定次数。 示例: Repeat("Hello", 2) → "HelloHello" |
Right(Arg1, Arg2) | 返回字符串 Arg1 的后 Arg2 个字符。Arg1 和结果的类型为 string。Arg2 的类型为 real,但仅使用整数部分。如果 Arg2 > Arg1 的长度,则返回整个字符串。 如果 Arg2 为负数,则会删除 Arg1 字符串左侧的 Arg2 个字符。 示例: Right("Daddy", 1) → "y" Right("Daddy", 3.99) → "ddy" Right("Daddy", 386) → "Daddy" Right("Daddy", -1) → "addy" |
RXExtract(Arg1, Arg2, Arg3) |
返回字符串 (Arg1) 中与正则表达式 (Arg2) 匹配的部分。Arg3 决定了当存在多个匹配项时使用的匹配项。 示例: RXExtract([Column], "l+", 1) RXExtract("Parallel", "l+", 1) → "ll" RXExtract("Parallel", "l+", 2) → "l" |
RXReplace(Arg1, Arg2, Arg3, Arg4) | 根据正则表达式替换子字符串。在 Arg1 中搜索正则表达式 Arg2,并将其替换为 Arg3。 Arg4 指定了替换选项: “g”指定如果 Arg2 与多项匹配,则替换所有匹配项。 “i”指定比较应区分大小写。 “s”用于单行模式,指定圆点 (.) 匹配每个字符 (而不是除新行外的每个字符)。 使用计算的列时,某些字符(例如反斜线符号“\”)以及括号“(”和“)”需要进行转义才能起作用。由于括号在正则表达式中用于分组,因此如果“(”或“)”符号应该匹配,则“(”和“)”都需要转义,而且在正则表达式中使用该字符时,还需要使用双反斜杠,以便对 Spotfire 字符串和正则表达式进行转义。有关详细信息,请参见关于正则表达式语言元素的文献(例如,在 MSDN 上)。 示例: RXReplace("Hello", "L+", "LL", "i") → "HeLLo" RXReplace("3 Minor", "(\\d).*", "$1", "") → 3 RXReplace([Column with values within parenteses], "\\(89\\)", "", "") RXReplace("change\\slashdirection","\\\\","/","") → change/slashdirection |
Split(Arg1, Arg2, Arg3) | 使用 Arg2 作为分隔符将 Arg1 中的值拆分为多个子字符串。Arg3
指定哪些值作为新列返回。将仅返回一个列。 使用负数的 Arg3 可指定拆分操作从字符串的末尾处向开头处执行,而不是从开头处向末尾处执行。 例如,如果使用分隔符“.”将名为“X”且包含值“a.b”的列拆分为两部分,则 Split([X],".",1) 将返回“a”,而 Split([X],".",2) 将返回“b”。 示例: Split([Column]," ",2) Split([Column]," ",-2) Split([Column]," / ",3) |
Substitute(Arg1, Arg2, Arg3) | 将 Arg2 在 Arg1 中的所有匹配项替换为 Arg3。该搜索区分大小写。 示例: Substitute("Test","t","ting") → "Testing" |
Substring(Arg1, Arg2, Arg3) | 返回 Arg1 中以索引 Arg2 开头且长度为 Arg3 个字符的子字符串。Arg1 和结果的类型为 string。Arg2 和 Arg3 的类型为 real,但仅使用整数部分。如果 Arg2 > Len(Arg1),则返回空字符串。另外,如果 Arg2 +
Arg3 > Len(Arg1),则 Arg3 会调整为 1+Len(Arg1) -
Arg2。如果 Arg2 或 Arg3 为负数,或者如果 Arg2 为零,则返回错误。 示例: Substring("Daddy", 2, 3) → "add" Substring("Daddy", 386, 4) → "" Substring("Daddy", 4, 386) → "dy" Substring("Daddy", -1, 2) →(空值) Substring("Daddy", 2, -1) →(空值) |
Trim(Arg1) | 将删除字符串的开头和结尾的空白字符。 示例: Trim(" Example ") → "Example" |
UniqueConcatenate(Arg1) | 连接转换为字符串的唯一值。这些值根据比较运算符进行排序。 示例: UniqueConcatenate([Column]) |
Upper(Arg1) | 返回转换成大写的 Arg1。Arg1 和结果的类型为 string。 示例: Upper("hello") → "HELLO" |