Spotfire 表达式之文本函数

函数说明
~=可以用作 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) → (Empty)

Find(Arg1, Arg2, Arg3)返回字符串 Arg1 在 Arg2 中出现位置的索引。Arg3 也可指示返回的匹配项。如果未提供第三个参数,则返回第一个匹配项。如果未找到匹配项,则将返回 0。

该搜索区分大小写。前两个参数为字符串类型,第三个参数和结果为整数类型。如果 Arg1 是空字符串,则将返回 0。

示例:

Find("lo", "Hello") → 4

Find("a", "Hello") → 0

Find("", "Hello") → 0

Find("", null) → (Empty)

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 和结果为字符串类型。Arg2 为实数类型,但只使用整数部分。如果 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 为字符串类型,结果为整数类型。

示例:

Len("Hello") → 5

Len(null) → (Empty)

Lower(Arg1)返回转换为小写的 Arg1。Arg1 和结果为字符串类型。
Mid(Arg1, Arg2, Arg3)返回 Arg1 中,从索引 Arg2 开始且具有 Arg3 个字符长度的子字符串。Arg1 和结果为字符串类型。Arg2 和 Arg3 为实数类型,但只使用整数部分。如果 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) → (Empty)

Mid("Daddy", 2, -1) → (Empty)

MostCommon(Arg1)返回指定列的最常用的值。如果多个值同样常用,则使用第一个值。

示例:

MostCommon([Column])

NameDecode(Arg1)用解码后的字符替换所有子字符串代码。

TIBCO Spotfire® 中的列名称存储为 UTF-16 编码字符串,而 TIBCO Spotfire® Statistics Services 中的变量名称则根据与 [.0-9a-zA-Z] 匹配的 8 位 ASCII 字符或附在重音符中的 ASCII 字符串构建。因此,发送至 TIBCO Spotfire® Statistics Services 的列名称必须进行编码。从 TIBCO Spotfire® Statistics Services 获得的列名称由内置数据函数输出处理程序进行自动解码。此函数可以用于解码尚未进行自动解码的结果。

示例:

NameDecode("Column %02D")

NameEncode(Arg1)编码字符串中的字符,以便让字符串仅包含与正则表达式 [.0-9a-zA-Z] 匹配的字符。

TIBCO Spotfire® 中的列名称存储为 UTF-16 编码字符串,而 TIBCO Spotfire® Statistics Services 中的变量名称根据与 [.0-9a-zA-Z] 匹配的 8 位 ASCII 字符构建。因此,发送至 TIBCO Spotfire® Statistics Services 的列名称必须进行编码。通过内置数据函数输入处理程序将数据发送至 TIBCO Spotfire® Statistics Services 时,会自动完成此操作。如果您需要通过某些其他方式(例如通过文档属性)提供列名称输入,可能需要在应用数据函数之前使用此函数来编码列名称。

示例:

NameEncode("Column £")

Repeat将重复某字符串指定次数。

示例:

Repeat("Hello", 2) → "HelloHello"

Right(Arg1, Arg2)返回字符串 Arg1 的后 Arg2 个字符。Arg1 和结果为字符串类型。Arg2 为实数类型,但只使用整数部分。如果 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)

返回与正则表达式 (Arg2) 匹配的字符串 (Arg1) 部分。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

(在最后一个示例中,需要将反斜杠转义两次,一次是为 Spotfire 字符串,一次是为正则表达式。)

Split(Arg1, Arg2, Arg3)使用 Arg2 作为分隔符,将 Arg1 中的值拆分为若干子字符串。Arg3 指定应将哪些值返回为新列。将仅返回一个列。

使用负的 Arg3 来指定,应将字符串从尾到头进行拆分,而不是从头到尾。

例如,如果使用分隔符“.”将包含值“a.b”的名称为“X”的列拆分为两部分,则 Split([X],".",1) 将返回“a”,而 Split([X],".",2) 将返回“b”。

示例:

Split([Column]," ",2)

Split([Column]," ",-2)

Split([Column]," / ",3)

Substitute(Arg1, Arg2,Arg3)使用 Arg3 替换 Arg1 中出现的所有 Arg2。该搜索区分大小写。

示例:

Substitute("Test","t","ting") → "Testing"

Substring(Arg1, Arg2,Arg3)返回 Arg1 中,从索引 Arg2 开始且具有 Arg3 个字符长度的子字符串。Arg1 和结果为字符串类型。Arg2 和 Arg3 为实数类型,但只使用整数部分。如果 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) → (Empty)

Substring("Daddy", 2, -1) → (Empty)

Trim(Arg1)将删除字符串的开头和结尾的空白字符。

示例:

Trim(" Example ") → "Example"

UniqueConcatenate(Arg1)连接转换为字符串的唯一值。这些值根据比较运算符进行排序。

示例:

UniqueConcatenate([Column])

Upper(Arg1)返回转换为大写的 Arg1。Arg1 和结果为字符串类型。

示例:

Upper("hello") → "HELLO"

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

种麦南山下

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值