字符串函数
通过 CLEM ,您可以运行操作来比较字符串,创建字符串或访问字符。
在 CLEM 中,字符串是匹配双引号 ("string quotes"
) 之间的任意字符序列。 字符 (CHAR
) 可以是任何单个字母数字字符。 它们在 CLEM 表达式中使用 `<character>`
格式的单反引号进行声明,例如 `z`
, `A`
或 `2`
。 如果字符超出边界或为字符串中的负指数,则会导致未定义的行为。
注: 执行和不使用 SQL 回送的字符串之间的比较可能会生成存在尾部空格的不同结果。
函数 | 结果 | 描述 |
---|---|---|
allbutfirst(N, STRING) |
字符串 | 返回一个字符串,即除去了前 N 个字符的 STRING 。 |
allbutlast(N, STRING) |
字符串 | 返回一个字符串,即除去了最后一个字符的 STRING 。 |
alphabefore(STRING1, STRING2) |
BOOLEAN | 用于检查字符串的数字字母顺序。 如果 STRING1 在 STRING2 之前,则返回真值。 |
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 结尾,那么此函数将返回 STRING 中 SUBSTRING 的整数下标。 否则,此函数将返回值 0 。 |
islowercode(CHAR) |
BOOLEAN | 如果 CHAR 是指定字符串 (通常是字段名称) 的小写字母字符,那么返回值 true 。 否则,此函数将返回值 0 。 例如, islowercode(``) 和 islowercode(country_name(2)) 都是有效表达式。 |
ismidstring(SUBSTRING, STRING) |
整数 | 如果 SUBSTRING 是 STRING 的子串,但未在 STRING 的第一个字符上开始或在最后一个字符上结束,那么此函数将返回子串开始的下标。 否则,此函数将返回值 0 。 |
isnumbercode(CHAR) |
BOOLEAN | 如果指定字符串(通常为字段名)的 CHAR 为数字字符,则返回真值。 否则,此函数将返回值 0 。 例如,isnumbercode(product_id(2)) 。 |
isstartstring(SUBSTRING, STRING) |
整数 | 如果字符串 STRING 以子串 SUBSTRING 开头,那么此函数将返回下标 1 。 否则,此函数将返回值 0 。 |
issubstring(SUBSTRING, N, STRING) |
整数 | 从字符串 STRING 的 Nth 字符开始,搜索等于字符串 SUBSTRING 的子串。 如果找到子串,则该函数返回匹配子串的起始整数下标。 否则,此函数将返回值 0 。 如果未提供 N ,那么此函数缺省为 1 。 |
issubstring(SUBSTRING, STRING) |
整数 | 搜索字符串 STRING 。 如果找到子串,则该函数返回匹配子串的起始整数下标。 否则,此函数将返回值 0 。 |
issubstring_count(SUBSTRING, N, STRING) |
整数 | 返回指定 STRING 中 SUBSTRING 的 Nth 实例的索引。 如果 SUBSTRING 出现次数少于 N 次,那么将返回 0 。 |
issubstring_lim(SUBSTRING, N, STARTLIM, ENDLIM, STRING) |
整数 | 此函数与 issubstring 相同,但匹配仅限于在 STARTLIM 上启动并在 ENDLIM 上结束。 可以通过为任一自变量提供值 false 来禁用 STARTLIM 或 ENDLIM 约束,例如, 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 ,并在 STRING 的 Nth 字符处开始搜索。 此函数的返回值表示(从 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) 函数。 它返回一个整数子串,指示首次出现 CHAR 或 0 的点。 如果此函数存在无效偏移(例如,某个偏移超出了字符串长度),则函数返回结果为 $null$ 。 |
subscrs(N, STRING) |
字符 | 返回输入字符串 STRING 的 Nth character CHAR 。 此函数也可采用简写形式 STRING(N) 。 例如,lowertoupper(“name”(1)) 是有效的表达式。 |
substring(N, LEN, STRING) |
字符串 | 返回字符串 SUBSTRING ,该字符串由字符串 STRING 的 LEN 字符组成,从下标 N处的字符开始。 |
substring_between(N1, N2, STRING) |
字符串 | 返回 STRING 的子串,该子串以下标 N1 开始,以下标 N2 结束。 |
textsplit(STRING, N, CHAR) |
字符串 | textsplit(STRING,N,CHAR) 返回 CHAR 的 Nth-1 和 Nth 实例之间的子串。 如果 N 为 1 ,那么它将返回从 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 或 字符串 | 可以输入字符串或字符,此函数将返回一个类型相同项,大写字符将转换为相应的小写字符。 请记住使用双引号指定字符串,使用单反引号指定字符。 简单字段名不必使用引号。 |