语法作用
从字符串中返回第N个位置的分隔符前的文本,分隔符位置从1开始。
XF.Str.BeforeDelimiter(str:string,delimiter:string,n:int64)
函数代码
该函数的实现代码如下:
/// 从字符串中返回第N个位置的分隔符前的文本,分隔符位置从1开始
FUNCTION XF.Str.BeforeDelimiter = (str:string,delimiter:string,n:int64) =>
IF(n>=1,
VAR TransToPath = SUBSTITUTE(str,delimiter,"|")
RETURN
CONCATENATEX(
ADDCOLUMNS(
GENERATESERIES(1,MIN(n,PATHLENGTH(TransToPath))),
"SubStr",PATHITEM(TransToPath,[Value])
),
[SubStr],
delimiter,
[Value],ASC
),
ERROR("分隔符位置应大于或等于1")
)
应用示例
示例1:
获取 "111-222-333" 字符串的第一个横杠前的部分。
XF.Str.BeforeDelimiter("111-222-333","-",1)
结果如下:
"111"
示例2:
获取 "111-222-333" 字符串的第二个横杠前的部分。
XF.Str.BeforeDelimiter("111-222-333","-",2)
结果如下:
"111-222"