TextBetween - 脚本和图表函数
TextBetween() 用于返回输入字符串中作为分隔符出现在指定字符之间的文本。
语法:
TextBetween(text,
delimiter1, delimiter2[, n])
返回数据类型: 字符串
参数
text
|
原始字符串。 |
delimiter1
|
指定要在 text 中搜索的第一个分隔符(或字符串)。 |
delimiter2
|
指定要在 text 中搜索的第二个分隔符(或字符串)。 |
n
|
定义搜索哪一次出现的分隔符对之间的字符。例如,值为 2,则返回第二次出现的 delimiter1 和第二次出现的 delimiter2 之间的字符。 |
示例:图表表达式
TextBetween( '<abc>', '<', '>' )
|
返回 abc |
TextBetween( '<abc><de>', '<', '>',2 )
|
返回 de |
TextBetween( 'abc', '<', '>' )
|
返回 NULL
如果在字符串中未找到任何一个分隔符,则会返回 NULL。
|
TextBetween( '<a<b', '<', '>' )
|
返回 NULL
如果在字符串中未找到任何一个分隔符,则会返回 NULL。
|
TextBetween( '<>', '<', '>' )
|
返回零长度字符串。 |
TextBetween( '<abc>', '<', '>', 2 )
|
返回 NULL,因为 n 大于分隔符的出现数。
|
示例 - TextBetween 基本原理
概述
打开数据加载编辑器,并将下面的加载脚本添加到新选项卡。
加载脚本包含:
-
加载到名为 Example 的数据表中的数据集。
-
数据表中有一个名为 InputText 的字段。
加载脚本
Example:
Load * inline [
InputText,
<abc><de>
<def><ghi><jk>
];
结果
加载数据并打开工作表。创建新表并将该字段添加为维度:
创建以下计算维度:
-
=TextBetween(InputText,'<','>'),用于计算出现在 InputText 字段中分隔符 '<' 和 '>' 之间的字符的第一个实例。
-
=TextBetween(InputText,'<','>',2),用于计算出现在 InputText 字段中分隔符 '<' 和 '>' 之间的字符的第二个实例。
Results table
InputText |
TextBetween(InputText,'<','>') |
TextBetween(InputText,'<','>',2) |
<abc><de> |
abc |
de |
<def><ghi><jkl> |
def |
ghi |
在第一个计算维度中,TextBetween 函数的输出返回分隔符 '<' 和 '>' 之间出现的字符的第一个实例。例如,第 1 行返回 abc。第二个计算维度具有 2 的 n 参数,因此输出返回分隔符 '<' 和 '>' 之间出现的字符的第二个实例。例如,第 1 行返回 de。
以下代码显示了如何在加载脚本中使用该函数。
Load *,
textbetween(Text,'<','>') as TextBetween,
textbetween(Text,'<','>',2) as SecondTextBetween;
Load * inline [
Text
<abc><de>
<def><ghi><jkl>];
结果表
Text |
TextBetween |
SecondTextBetween |
<abc><de> |
abc |
de |
<def><ghi><jkl> | def | ghi |
示例 – TextBetween 场景
概述
数据集包含一个含电子邮件地址的数据表。此示例使用 TextBetween 函数从地址中提取二级域。
打开数据加载编辑器,并将下面的加载脚本添加到新选项卡。
加载脚本包含:
-
加载到名为 Example 的数据表中的数据集。
-
数据表中有以下字段:
加载脚本
Example:
Load * inline [
UserID, EmailAddress
1, alice@example.com
2, bob@sample.org
3, charlie@domain.net
];
结果
加载数据并打开工作表。创建新表并将这些字段添加为维度:
创建以下计算维度:
Results table
UserID |
EmailAddress |
TextBetween(EmailAddress,'@', '.') |
1 |
alice@example.com |
example |
2 |
bob@sample.org |
sample |
3 |
charlie@domain.net |
domain |
TextBetween 函数的输出通过搜索以下指定分隔符之间的内容来返回每个用户 ID 的二级域:'@' 和 '.'。