字符串函数

通过 CLEM ,您可以运行操作来比较字符串,创建字符串或访问字符。

在 CLEM 中,字符串是匹配双引号 ("string quotes") 之间的任意字符序列。 字符 (CHAR) 可以是任何单个字母数字字符。 它们在 CLEM 表达式中使用 `<character>`格式的单反引号进行声明,例如 `z``A``2`。 如果字符超出边界或为字符串中的负指数,则会导致未定义的行为。

注: 执行和不使用 SQL 回送的字符串之间的比较可能会生成存在尾部空格的不同结果。
表 1. CLEM 字符串函数
函数 结果 描述
allbutfirst(N, STRING) 字符串 返回一个字符串,即除去了前 N 个字符的 STRING
allbutlast(N, STRING) 字符串 返回一个字符串,即除去了最后一个字符的 STRING
alphabefore(STRING1, STRING2) BOOLEAN 用于检查字符串的数字字母顺序。 如果 STRING1STRING2 之前,则返回真值。
count_substring(STRING, SUBSTRING) 整数 返回字符串中指定字符串出现的次数。 例如, count_substring("foooo.txt", "oo") 返回 3
endstring(LENGTH, STRING) 字符串 从指定的字符串中抽取最后 N 个字符。 如果字符串长度小于或等于指定长度,则字符串不发生改变。
hasendstring(STRING, SUBSTRING) 整数 此函数与 isendstring(SUBSTRING, STRING)相同。
hasmidstring(STRING, SUBSTRING) 整数 此函数的功能等同于 ismidstring(SUBSTRING, STRING) (嵌入的子串)。
hasstartstring(STRING, SUBSTRING) 整数 此函数与 isstartstring(SUBSTRING, STRING)相同。
hassubstring(STRING, N, SUBSTRING) 整数 此函数与 issubstring(SUBSTRING, N, STRING)相同,其中 N 缺省为 1
hassubstring(STRING, SUBSTRING) 整数 此函数与 issubstring(SUBSTRING, 1, STRING)相同,其中 N 缺省为 1
isalphacode(CHAR) BOOLEAN 如果 CHAR 是字符代码为字母的指定字符串(常为字段名)中的某个字符,则返回真值。 否则,此函数将返回值 0。 例如,isalphacode(produce_num(1))
isendstring(SUBSTRING, STRING) 整数 如果字符串 STRING 以子串 SUBSTRING结尾,那么此函数将返回 STRINGSUBSTRING 的整数下标。 否则,此函数将返回值 0
islowercode(CHAR) BOOLEAN 如果 CHAR 是指定字符串 (通常是字段名称) 的小写字母字符,那么返回值 true 。 否则,此函数将返回值 0。 例如, islowercode(``)islowercode(country_name(2)) 都是有效表达式。
ismidstring(SUBSTRING, STRING) 整数 如果 SUBSTRINGSTRING 的子串,但未在 STRING 的第一个字符上开始或在最后一个字符上结束,那么此函数将返回子串开始的下标。 否则,此函数将返回值 0
isnumbercode(CHAR) BOOLEAN 如果指定字符串(通常为字段名)的 CHAR 为数字字符,则返回真值。 否则,此函数将返回值 0。 例如,isnumbercode(product_id(2))
isstartstring(SUBSTRING, STRING) 整数 如果字符串 STRING 以子串 SUBSTRING开头,那么此函数将返回下标 1。 否则,此函数将返回值 0
issubstring(SUBSTRING, N, STRING) 整数 从字符串 STRINGNth 字符开始,搜索等于字符串 SUBSTRING的子串。 如果找到子串,则该函数返回匹配子串的起始整数下标。 否则,此函数将返回值 0。 如果未提供 N ,那么此函数缺省为 1
issubstring(SUBSTRING, STRING) 整数 搜索字符串 STRING。 如果找到子串,则该函数返回匹配子串的起始整数下标。 否则,此函数将返回值 0
issubstring_count(SUBSTRING, N, STRING) 整数 返回指定 STRINGSUBSTRINGNth 实例的索引。 如果 SUBSTRING出现次数少于 N 次,那么将返回 0
issubstring_lim(SUBSTRING, N, STARTLIM, ENDLIM, STRING) 整数 此函数与 issubstring相同,但匹配仅限于在 STARTLIM 上启动并在 ENDLIM上结束。 可以通过为任一自变量提供值 false 来禁用 STARTLIMENDLIM 约束,例如, issubstring_lim(SUBSTRING, N, false, false, STRING)issubstring相同。
isuppercode(CHAR) BOOLEAN 如果 CHAR 是大写字母字符,则返回真值。 否则,此函数将返回值 0。 例如, isuppercode(``)isuppercode(country_name(2)) 都是有效表达式。
last(STRING) 字符串 返回 STRING 的最后一个字符 CHAR (长度必须至少为一个字符)。
length(STRING) 整数 返回字符串 STRING 的长度 (即,其中的字符数)。
locchar(CHAR, N, STRING) 整数 用于标识号字段中的字符位置。 此函数将在字符串 STRING 中搜索字符 CHAR,并在 STRINGNth 字符处开始搜索。 此函数的返回值表示(从 N 开始)找到字符的位置。 如果找不到该字符,那么此函数将返回值 0。 如果函数具有无效的偏移量 (N) (例如,超出字符串长度的偏移量) ,那么此函数将返回 $null$
例如, locchar(`n`, 2, web_page) 在名为 web_page 的字段中搜索以字段值中的第二个字符开头的 `n` 字符。
请确保使用单引号来封装指定的字符。
locchar_back(CHAR, N, STRING) 整数 类似于 locchar,只是从 Nth 字符开始向后执行搜索。 例如, locchar_back(`n`, 9, web_page) 从第九个字符开始搜索字段 web_page ,然后向后移动到字符串的开头。 如果此函数存在无效偏移(例如,某个偏移超出了字符串长度),则函数返回结果为 $null$。 理想情况下,您应该将 locchar_back 与函数 length(<field>) 结合使用,以动态使用该字段的当前值的长度。 例如 locchar_back(`n`, (length(web_page)), web_page)
lowertoupper(CHAR) lowertoupper (STRING) CHAR字符串 可以输入字符串或字符,此函数将返回一个类型相同项,小写字符将转换为相应的大写字符。 例如,lowertoupper(`a`)lowertoupper(“My string”)lowertoupper(field_name(2)) 都是有效的表达式。
matches BOOLEAN 如果字符串与指定的模式匹配,那么返回 true 。 模式必须是字符串文字; 它不能是包含模式的字段名称。 您可以在模式中包含问号 (?) 以正好与一个字符匹配; 星号 (*) 与零个或多个字符匹配。 要匹配字面值问号或星号 (而不是将其用作通配符) ,请使用反斜杠 (\) 作为转义字符。
replace(SUBSTRING, NEWSUBSTRING, STRING) 字符串 在指定的 STRING中,将 SUBSTRING 的所有实例替换为 NEWSUBSTRING
replicate(COUNT, STRING) 字符串 返回一个由原始字符串指定个数的复本所构成的字符串。
stripchar(CHAR,STRING) 字符串 借助此函数,您可从某个字符串 或字段中移除指定字符。 例如,您可以使用此函数从数据中移除多余符号(如货币符号)以获取一个简单的数值或名称。 例如,通过语法 stripchar(`$`, 'Cost') 可以移除所有值中的美元符号并返回一个新字段。
请确保使用单引号来封装指定的字符。
skipchar(CHAR, N, STRING) 整数 搜索字符串 STRING 以查找除 CHAR以外的任何字符 (从 Nth 字符开始)。 此函数返回一个整数子串,指示找到一个整数子串的点,如果 Nth 中的每个字符都是 CHAR,那么返回 0 。 如果此函数存在无效偏移(例如,某个偏移超出了字符串长度),则函数返回结果为 $null$
locchar 通常与 skipchar 函数结合使用,以确定 N 的值 (开始搜索字符串的点)。 例如, skipchar(`s`, (locchar(`s`, 1, "MyString")), "MyString")
skipchar_back(CHAR, N, STRING) 整数 skipchar类似,只是从 Nth 字符开始向后执行搜索。
startstring(N, STRING) 字符串 从指定的字符串中抽取前 N 个字符。 如果字符串长度小于或等于指定长度,则字符串不发生改变。
strmember(CHAR, STRING) 整数 等同于 locchar(CHAR, 1, STRING) 函数。 它返回一个整数子串,指示首次出现 CHAR0的点。 如果此函数存在无效偏移(例如,某个偏移超出了字符串长度),则函数返回结果为 $null$
subscrs(N, STRING) 字符 返回输入字符串 STRINGNth character CHAR 。 此函数也可采用简写形式 STRING(N)。 例如,lowertoupper(“name”(1)) 是有效的表达式。
substring(N, LEN, STRING) 字符串 返回字符串 SUBSTRING,该字符串由字符串 STRINGLEN 字符组成,从下标 N处的字符开始。
substring_between(N1, N2, STRING) 字符串 返回 STRING的子串,该子串以下标 N1 开始,以下标 N2结束。
textsplit(STRING, N, CHAR) 字符串 textsplit(STRING,N,CHAR) 返回 CHARNth-1Nth 实例之间的子串。 如果 N1,那么它将返回从 STRING 开始直到但不包括 CHAR的子串。 如果 N-1 是最后出现的 CHAR,那么它将返回从出现的 Nth-1 CHAR 到字符串末尾的子串。
trim(STRING) 字符串 移除指定字符串的前导和尾部空格。
trimstart(STRING) 字符串 移除指定字符串的前导空格。
trimend(STRING) 字符串 移除指定字符串的尾部空格。
unicode_char(NUM) 字符 输入必须是十进制值,而不能是十六进制值。 返回 Unicode 值为 NUM的字符。
unicode_value(CHAR) NUM 返回 CHAR的 Unicode 值。
uppertolower(CHAR) uppertolower (STRING) CHAR字符串 可以输入字符串或字符,此函数将返回一个类型相同项,大写字符将转换为相应的小写字符。
请记住使用双引号指定字符串,使用单反引号指定字符。 简单字段名不必使用引号。