字符串函数
在 CLEM 中您可以对字符串执行以下操作:
- 比较字符串
- 创建字符串
- 访问字符
在 CLEM 中,字符串是一对英文双引号( "string quotes"
)之间的一组字符序列。这里所用的字符( CHAR
)可以是任何一个字母数字字符。这些字符已在 CLEM 表达式中使用反单引号并以 `
<character>`
的形式声明过,例如 `z`
、`A`
或 `2`
。如果字符超出边界或为字符串中的负指数,则会导致未定义的行为。
注: 在使用与不使用 SQL 回送的字符串之间的对比可能生成存在尾部空格的不同结果。
函数 | 结果 | 描述 |
---|---|---|
allbutfirst(N, STRING) |
字符串 | 返回 字符串 删除前 N 个字符的字符值。 |
allbutlast(N, STRING) |
字符串 | 返回字符串 字符串 移除后 N 个字符后所生成的新字符串。 |
alphabefore(STRING1, STRING2) |
布尔值 | 用于检查字符串的数字字母顺序。如果 STRING1 在 STRING2 之前,则返回真值。 |
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。 |
count_substring(STRING, SUBSTRING) |
整数 | 返回字符串中指定字符串出现的次数。例如,
count_substring("foooo.txt", "oo") 返回结果为 3。 |
hassubstring(STRING, SUBSTRING) |
整数 | 此函数的功能等同于 issubstring(SUBSTRING, 1, STRING) ,其中 N 的缺省值为 1。 |
isalphacode(CHAR) |
布尔值 | 如果 CHAR 是字符代码为字母的指定字符串(常为字段名)中的某个字符,则返回真值。否则,此函数的返回值为 0,例如 isalphacode(produce_num(1)) 。 |
isendstring(SUBSTRING, STRING) |
整数 | 如果字符串 字符串 以子串 SUBSTRING 结尾,则该函数将返回字符串 字符串 中子串 SUBSTRING 的整数下标。否则,此函数将返回值 0。 |
islowercode(CHAR) |
布尔值 | 如果 CHAR 是指定字符串(通常为字段名)中的某个小写字母字符,则将返回真值。否则,该函数的返回值为 0,例如 islowercode(``) 和 islowercode(country_name(2)) 均为有效表达式。 |
ismidstring(SUBSTRING, STRING) |
整数 | 如果 SUBSTRING 是 字符串 的子串,但首字符或尾端字符与 字符串 不同,则该函数将返回此子串的起始下标。否则,此函数将返回值 0。 |
isnumbercode(CHAR) |
布尔值 | 如果指定字符串(通常为字段名)的 CHAR 为数字字符,则返回真值。否则,此函数的返回值为 0,例如 isnumbercode(product_id(2)) 。 |
isstartstring(SUBSTRING, STRING) |
整数 | 如果字符串 字符串 以子串 SUBSTRING 开头,则该函数将返回下标 1。否则,此函数的返回结果为 0。 |
issubstring(SUBSTRING, N, STRING) |
整数 | 从字符串 字符串 中搜索(从第 N 个字符开始)等于 SUBSTRING 的子串。如果找到子串,则该函数返回匹配子串的起始整数下标。否则,此函数将返回值 0。如果未指定 N,此函数的默认值为 1。 |
issubstring(SUBSTRING, STRING) |
整数 | 从字符串 字符串 中搜索(从第 N 个字符开始)等于 SUBSTRING 的子串。如果找到子串,则该函数返回匹配子串的起始整数下标。否则,此函数将返回值 0。如果未指定 N,此函数的默认值为 1。 |
issubstring_count(SUBSTRING, N, STRING): |
整数 | 返回 字符串 中第 N 次出现的 SUBSTRING 的索引。如果 SUBSTRING 的出现次数少于 N 次,则返回结果为 0。 |
issubstring_lim(SUBSTRING, N, STARTLIM,
ENDLIM, STRING) |
整数 | 此函数的功能与 issubstring 相同,但匹配必须从下标 STARTLIM 或其之前开始,并且必须从下标 ENDLIM 或其之前结束。通过对任意一个参数提供假值,可以将 STARTLIM 或 ENDLIM 约束禁用 - 例如,issubstring_lim(SUBSTRING, N, false, false, STRING) 函数功能等同于 issubstring 。 |
isuppercode(CHAR) |
布尔值 | 如果 CHAR 是大写字母字符,则返回真值。否则,此函数的返回值为 0,例如 isuppercode(``) 和 isuppercode(country_name(2)) 均为有效表达式。 |
last(CHAR) |
字符串 | 返回 字符串(长度至少为一个字符)的最后一个字符 CHAR。 |
length(STRING) |
整数 | 返回字符串 字符串 的长度,即字符串内的字符数。 |
locchar(CHAR, N, STRING) |
整数 | 用于标识号字段中的字符位置。此函数将在字符串 字符串 中搜索字符 CHAR(从 字符串 的第 N 个字符开始搜索)。此函数的返回值表示(从 N 开始)找到字符的位置。如果未找到字符,则函数返回结果为 0。如果此函数存在无效偏移 (N)(例如,某个偏移超出了字符串长度),则函数返回结果为 $null$ 。
例如,locchar(`n`, 2, web_page) 在名为 web_page 的字段中从第二个字符开始搜索字符 `n` 。
注:请用反单引号将指定字符引起。 |
locchar_back(CHAR, N, STRING) |
整数 | 与 locchar 函数类似,所不同的是搜索反向进行并且从第 N 个字符开始。例如,locchar_back(`n`, 9, web_page) 将从 web_page 的第 9 个字符开始搜索并且是从后向前移动搜索。如果此函数存在无效偏移(例如,某个偏移超出了字符串长度),则函数返回结果为 $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 |
布尔值 | 如果字符串与指定模式相匹配,则将返回真值。模式必须是字符串字符,而不能是包含模式的字段名。问号(?)可以包含在模式中以便匹配某一字符,星号(*)可以匹配零个或多个字符。要匹配文字问号或星号(而不是将其用作通配符),可以使用反斜杠(\)作为转义符号。 |
replace(SUBSTRING, NEWSUBSTRING, STRING) |
字符串 | 在指定 字符串 中,用 NEWSUBSTRING 替换 SUBSTRING 中的所有示例。 |
replicate(COUNT, STRING) |
字符串 | 返回一个由原始字符串指定个数的复本所构成的字符串。 |
stripchar(CHAR,STRING) |
字符串 | 借助此函数,您可从某个字符串 或字段中移除指定字符。例如,您可以使用此函数从数据中移除多余符号(如货币符号)以获取一个简单的数值或名称。例如,通过语法 stripchar(`$`, 'Cost') 可以移除所有值中的美元符号并返回一个新字段。
注:请用反单引号将指定字符引起。 |
skipchar(CHAR, N, STRING) |
整数 | 在字符串 字符串 中搜索除 CHAR 以外的字符(从第 N 个字符开始搜索)。此函数返回一个表示发现子串位置的整数子串,如果从第 N 个位置开始的每个字符是 CHAR,则返回 0。如果此函数存在无效偏移(例如,某个偏移超出了字符串长度),则函数返回结果为 $null$ 。
locchar 函数经常与 skipchar 结合使用以确定 N(开始搜索字符串的位置)的值。例如 skipchar(`s`, (locchar(`s`, 1, "MyString")), "MyString") 。 |
skipchar_back(CHAR, N, STRING) |
整数 | 与 skipchar 函数类似,所不同的是搜索 反向 进行并且从第 N 个字符开始。 |
startstring(LENGTH, STRING) |
字符串 | 从指定字符串中抽取前 N 个字符。如果字符串长度小于或等于指定长度,则字符串不发生改变。 |
strmember(CHAR, STRING) |
整数 | 等同于 locchar(CHAR, 1, STRING) 函数。此函数返回整数子串或 0,返回的整数子串表示 CHAR 第一次出现的位置。如果函数存在无效偏移(例如,某个偏移超出了字符串长度),则函数返回结果为 $null$ 。 |
subscrs(N, STRING) |
CHAR | 返回输入字符串 字符串 的第 N 个字符 CHAR。此函数也可采用简写形式 STRING(N) 。例如,lowertoupper("name"(1)) 是有效的表达式。 |
substring(N, LEN, STRING) |
字符串 | 返回从位于下标 N 的字符开始的字符串 SUBSTRING,此子串由字符串 字符串 的 LEN 个字符组成。 |
substring_between(N1, N2, STRING) |
字符串 | 返回 字符串 的子串,该字符串从下标 N1 开始并结束于下标 N2。 |
trim(STRING) |
字符串 | 移除指定字符串的前导和尾部空格。 |
trim_start(STRING) |
字符串 | 移除指定字符串的前导空格。 |
trimend(STRING) |
字符串 | 移除指定字符串的尾部空格。 |
unicode_char(NUM) |
CHAR | 输入必须是十进制值,而不能是十六进制值。返回 Unicode 值为 NUM 的字符。 |
unicode_value(CHAR) |
NUM | 返回 CHAR 的 Unicode 值。 |
uppertolower(CHAR)
uppertolower
(STRING) |
CHAR 或字符串 | 可以输入字符串或字符,此函数将返回一个类型相同项,大写字符将转换为相应的小写字符。 注:指定字符串时一定要用英文双引号,而指定字符时一定要用反向单引号。简单字段名不必使用引号。 |