处理字符串的函数
以下文档是从 system.functions 系统表生成的。
CRC32
引入于: v20.1
使用 CRC-32-IEEE 802.3 多项式和初始值 0xffffffff(zlib 实现)计算字符串的 CRC32 校验和。
语法
参数
s— 要计算 CRC32 的字符串。String
返回值
返回字符串的 CRC32 校验和。 UInt32
示例
使用示例
CRC32IEEE
引入于: v20.1
使用 CRC-32-IEEE 802.3 多项式计算字符串的 CRC32 校验和。
语法
参数
s— 要计算 CRC32 的字符串。String
返回值
返回字符串的 CRC32 校验和。 UInt32
示例
使用示例
CRC64
引入于: v20.1
使用 CRC-64-ECMA 多项式计算字符串的 CRC64 校验和。
语法
参数
s— 要计算 CRC64 的字符串。String
返回值
返回字符串的 CRC64 校验和。 UInt64
示例
使用示例
appendTrailingCharIfAbsent
引入于:v1.1
如果字符串 s 非空且不以字符 c 结尾,则将字符 c 追加到字符串 s。
语法
参数
返回值
如果 s 不以 c 结尾,则返回附加了字符 c 的字符串 s。 String
示例
使用示例
ascii
引入于:v22.11
以 Int32 的形式返回字符串 s 的第一个字符的 ASCII 码点。
语法
参数
s— 字符串输入。String
返回值
返回第一个字符的 ASCII 码点。 如果 s 为空,则结果为 0。 如果第一个字符不是 ASCII 字符或不是 UTF-16 的 Latin-1 补充范围的一部分,则结果未定义。 Int32
示例
使用示例
base32Decode
引入于: v25.6
解码一个 Base32 (RFC 4648) 字符串。 如果字符串不是有效的 Base32 编码,则会抛出异常。
语法
参数
encoded— 字符串列或常量。String
返回值
返回包含参数解码值的字符串。 String
示例
使用示例
base32Encode
引入于: v25.6
使用 Base32 编码一个字符串。
语法
参数
plaintext— 要编码的纯文本。String
返回值
返回包含参数编码值的字符串。 String 或 FixedString
示例
使用示例
base58Decode
引入于:v22.7
解码一个 Base58 字符串。 如果字符串不是有效的 Base58 编码,则会抛出异常。
语法
参数
encoded— 要解码的字符串列或常量。String
返回值
返回包含参数解码值的字符串。 String
示例
使用示例
base58Encode
引入于:v22.7
使用 Base58 编码编码一个字符串。
语法
参数
plaintext— 要编码的纯文本。String
返回值
返回包含参数编码值的字符串。 String
示例
使用示例
base64Decode
引入于: v18.16
根据 RFC 4648 从 Base64 表示法解码一个字符串。 如果出现错误,则抛出异常。
语法
别名: FROM_BASE64
参数
encoded— 要解码的字符串列或常量。 如果字符串不是有效的 Base64 编码,则会抛出异常。String
返回值
返回解码后的字符串。 String
示例
使用示例
base64Encode
引入于: v18.16
根据 RFC 4648 使用 Base64 表示法编码一个字符串。
语法
别名: TO_BASE64
参数
plaintext— 要解码的纯文本列或常量。String
返回值
返回包含参数编码值的字符串。 String
示例
使用示例
base64URLDecode
引入于: v24.6
根据 RFC 4648 使用 URL 安全字母从 Base64 表示法解码一个字符串。 如果出现错误,则抛出异常。
语法
参数
encoded— 要编码的字符串列或常量。 如果字符串不是有效的 Base64 编码,则会抛出异常。String
返回值
返回包含参数解码值的字符串。 String
示例
使用示例
base64URLEncode
引入于: v18.16
使用 Base64 (RFC 4648) 表示法使用 URL 安全字母编码一个字符串。
语法
参数
plaintext— 要编码的纯文本列或常量。String
返回值
返回包含参数编码值的字符串。 String
示例
使用示例
basename
引入于: v20.1
提取字符串在最后一个斜杠或反斜杠之后的尾部。 此函数通常用于从路径中提取文件名。
语法
参数
expr— 一个字符串表达式。 必须转义反斜杠。String
返回值
返回输入字符串在最后一个斜杠或反斜杠之后的尾部。 如果输入字符串以斜杠或反斜杠结尾,则该函数返回一个空字符串。 如果没有斜杠或反斜杠,则返回原始字符串。 String
示例
从 Unix 路径提取文件名
从 Windows 路径提取文件名
没有路径分隔符的字符串
byteHammingDistance
引入于: v23.9
计算两个字节字符串之间的 汉明距离。
语法
别名: mismatches
参数
返回值
返回两个字符串之间的汉明距离。 UInt64
示例
使用示例
compareSubstrings
引入于: v25.2
词法比较两个字符串。
语法
参数
s1— 要比较的第一个字符串。Strings2— 要比较的第二个字符串。Strings1_offset— 比较在s1中开始的位置(从零开始)。UInt*s2_offset— 比较在s2中开始的位置(从零开始的索引)。UInt*num_bytes— 在两个字符串中要比较的最大字节数。 如果s1_offset(或s2_offset)+num_bytes超过输入字符串的末尾,则num_bytes将相应地减少。UInt*
返回值
返回值
- 如果
s1[s1_offset:s1_offset+num_bytes] <s2[s2_offset:s2_offset+num_bytes],则为-1。 - 如果
s1[s1_offset:s1_offset+num_bytes] =s2[s2_offset:s2_offset+num_bytes],则为0。 - 如果
s1[s1_offset:s1_offset+num_bytes] >s2[s2_offset:s2_offset+num_bytes],则为1。Int8
示例
使用示例
concat
引入于:v1.1
连接给定的参数。
不是 String 或 FixedString 类型的参数将使用其默认序列化转换为字符串。 由于这会降低性能,因此不建议使用非 String/FixedString 参数。
语法
参数
s1, s2, ...— 任意类型的任意数量的值。Any
返回值
返回通过连接参数创建的 String。 如果任何参数为 NULL,则该函数返回 NULL。 如果没有参数,则返回一个空字符串。 Nullable(String)
示例
字符串连接
数字连接
concatAssumeInjective
引入于:v1.1
类似于 concat,但假定 concat(s1, s2, ...) → sn 是单射的,即,它为不同的参数返回不同的结果。
可用于优化 GROUP BY。
语法
参数
s1, s2, ...— 任意类型的任意数量的值。String或FixedString
返回值
返回通过连接参数创建的字符串。 如果任何参数值为 NULL,则该函数返回 NULL。 如果没有传递参数,则返回一个空字符串。 String
示例
分组优化
concatWithSeparator
引入于:v22.12
连接提供的字符串,用指定的分隔符分隔它们。
语法
别名: concat_ws
参数
sep— 要使用的分隔符。const String或const FixedStringexp1, exp2, ...— 要连接的表达式。 不是String或FixedString类型的参数将使用其默认序列化方式转换为字符串。 由于这会降低性能,因此不建议使用非 String/FixedString 参数。Any
返回值
返回通过连接参数创建的 String。 如果任何参数值为 NULL,则该函数返回 NULL。 String
示例
使用示例
concatWithSeparatorAssumeInjective
引入于:v22.12
类似于 concatWithSeparator,但假定 concatWithSeparator(sep[,exp1, exp2, ... ]) → result 是单射的。 如果函数对不同的参数返回不同的结果,则称该函数为单射。
可用于优化 GROUP BY。
语法
参数
sep— 要使用的分隔符。const String或const FixedStringexp1, exp2, ...— 要连接的表达式。 不是String或FixedString类型的参数将使用其默认序列化方式转换为字符串。 由于这会降低性能,因此不建议使用非 String/FixedString 参数。String或FixedString
返回值
返回通过连接参数创建的 String。 如果任何参数值为 NULL,则该函数返回 NULL。 String
示例
使用示例
conv
引入于:v1.1
在不同的数字基数之间转换数字。
该函数将数字从一个基数转换为另一个基数。 它支持从 2 到 36 的基数。 对于大于 10 的基数,使用字母 A-Z(不区分大小写)表示数字 10-35。
此函数与 MySQL 的 CONV() 函数兼容。
语法
参数
number— 要转换的数字。 可以是字符串或数字类型。 -from_base— 源基数(2-36)。 必须是整数。 -to_base— 目标基数(2-36)。 必须是整数。
返回值
目标基数中数字的字符串表示形式。
示例
将十进制转换为二进制
将十六进制转换为十进制
使用负数转换
将二进制转换为八进制
convertCharset
引入于:v1.1
返回从编码 from 转换为编码 to 的字符串 s。
语法
参数
返回值
返回从编码 from 转换为编码 to 的字符串 s。 String
示例
使用示例
damerauLevenshteinDistance
引入版本: v24.1
计算两个字节字符串之间的 Damerau-Levenshtein 距离。
语法
参数
返回值
返回两个字符串之间的 Damerau-Levenshtein 距离。 UInt64
示例
使用示例
decodeHTMLComponent
引入于: v23.9
将字符串中的 HTML 实体解码为其对应的字符。
语法
参数
s— 包含要解码的 HTML 实体的字符串。String
返回值
返回已解码 HTML 实体的字符串。 String
示例
使用示例
decodeXMLComponent
引入于: v21.2
将字符串中的 XML 实体解码为其对应的字符。
语法
参数
s— 包含要解码的 XML 实体的字符串。String
返回值
返回已解码 XML 实体的提供的字符串。 String
示例
使用示例
editDistance
引入于: v23.9
计算两个字节字符串之间的 编辑距离。
语法
别名: levenshteinDistance
参数
返回值
返回两个字符串之间的编辑距离。 UInt64
示例
使用示例
editDistanceUTF8
引入于: v24.6
计算两个 UTF8 字符串之间的 编辑距离。
语法
别名: levenshteinDistanceUTF8
参数
返回值
返回两个 UTF8 字符串之间的编辑距离。 UInt64
示例
使用示例
encodeXMLComponent
引入于:v21.1
转义字符以将字符串放置到 XML 文本节点或属性中。
语法
参数
s— 要转义的字符串。String
返回值
返回转义后的字符串。 String
示例
使用示例
endsWith
引入于:v1.1
检查字符串是否以提供的后缀结尾。
语法
参数
返回值
如果 s 以 suffix 结尾,则返回 1,否则返回 0。 UInt8
示例
使用示例
endsWithCaseInsensitive
引入于: v25.9
检查字符串是否以提供的不区分大小写的后缀结尾。
语法
参数
返回值
如果 s 以不区分大小写的 suffix 结尾,则返回 1,否则返回 0。 UInt8
示例
使用示例
endsWithCaseInsensitiveUTF8
引入于: v25.9
返回字符串 s 是否以不区分大小写的 suffix 结尾。 假定该字符串包含有效的 UTF-8 编码文本。 如果违反此假设,则不会引发异常,结果未定义。
语法
参数
返回值
如果 s 以不区分大小写的 suffix 结尾,则返回 1,否则返回 0。 UInt8
示例
使用示例
endsWithUTF8
引入于:v23.8
返回字符串 s 是否以 suffix 结尾。 假定该字符串包含有效的 UTF-8 编码文本。 如果违反此假设,则不会引发异常,结果未定义。
语法
参数
返回值
如果 s 以 suffix 结尾,则返回 1,否则返回 0。 UInt8
示例
使用示例
extractTextFromHTML
引入于: v21.3
从 HTML 或 XHTML 中提取文本内容。
此函数删除 HTML 标签、注释和 script/style 元素,仅留下文本内容。 它处理
- 删除所有 HTML/XML 标签
- 删除注释 (
<!-- -->) - 删除 script 和 style 元素及其内容
- 处理 CDATA 部分(逐字复制)
- 适当的空格处理和规范化
注意:HTML 实体未解码,如果需要,应使用单独的函数进行处理。
语法
参数
html— 包含要从中提取文本的 HTML 内容的字符串。String
返回值
返回具有规范化空格的提取文本内容。 String
示例
使用示例
firstLine
引入于: v23.7
返回多行字符串的第一行。
语法
参数
s— 输入字符串。String
返回值
返回输入字符串的第一行,或者如果没有任何行分隔符,则返回整个字符串。 String
示例
使用示例
idnaDecode
引入版本: v24.1
根据 国际域名系统中的应用程序 (IDNA) 机制,返回域名的 Unicode (UTF-8) 表示形式(ToUnicode 算法)。 如果发生错误(例如,因为输入无效),则返回输入字符串。 请注意,重复应用 idnaEncode() 和 idnaDecode() 不一定返回原始字符串,因为存在大小写规范化。
语法
参数
s— 输入字符串。String
返回值
返回根据 IDNA 机制的输入值的 Unicode (UTF-8) 表示形式。 String
示例
使用示例
idnaEncode
引入版本: v24.1
根据 国际域名系统中的应用程序 (IDNA) 机制,返回域名的 ASCII 表示形式(ToASCII 算法)。 输入字符串必须是 UTF 编码的并且可以转换为 ASCII 字符串,否则会引发异常。
不执行百分比解码或修剪制表符、空格或控制字符。
语法
参数
s— 输入字符串。String
返回值
返回根据 IDNA 机制的输入值的 ASCII 表示形式。 String
示例
使用示例
initcap
引入于: v23.7
将每个单词的第一个字母转换为大写,其余字母转换为小写。 单词是字母数字字符序列,由非字母数字字符分隔。
由于 initcap 仅将每个单词的第一个字母转换为大写,因此您可能会观察到包含撇号或大写的单词的意外行为。 这是已知行为,目前没有计划修复它。
语法
参数
s— 输入字符串。String
返回值
返回将每个单词的第一个字母转换为大写的 s。 String
示例
使用示例
包含撇号或大写字母的单词的已知行为示例
initcapUTF8
引入于: v23.7
就像 initcap 一样,initcapUTF8 将每个单词的第一个字母转换为大写,其余转换为小写。假定该字符串包含有效的 UTF-8 编码文本。如果违反此假设,则不会抛出异常,结果未定义。
此函数不检测语言,例如,对于土耳其语,结果可能不完全正确 (i/İ 与 i/I)。如果大小写编码点的 UTF-8 字节序列长度不同,则此编码点的结果可能不正确。
语法
参数
s— 输入字符串。String
返回值
返回将每个单词的第一个字母转换为大写的 s。 String
示例
使用示例
isValidASCII
引入于: v25.9
如果输入 String 或 FixedString 仅包含 ASCII 字节 (0x00–0x7F),则返回 1,否则返回 0。针对正例(输入是有效的 ASCII)进行了优化。
语法
别名: isASCII
参数
- 无。
返回值
示例
isValidASCII
isValidUTF8
引入于: v20.1
检查字节集是否构成有效的 UTF-8 编码文本。
语法
参数
s— 要检查 UTF-8 编码有效性的字符串。String
返回值
如果字节集构成有效的 UTF-8 编码文本,则返回 1,否则返回 0。 UInt8
示例
使用示例
jaroSimilarity
引入版本: v24.1
计算两个字节字符串之间的 Jaro 相似度。
语法
参数
返回值
返回两个字符串之间的 Jaro 相似度。 Float64
示例
使用示例
jaroWinklerSimilarity
引入版本: v24.1
计算两个字节字符串之间的 Jaro-Winkler 相似度。
语法
参数
返回值
返回两个字符串之间的 Jaro-Winkler 相似度。 Float64
示例
使用示例
left
引入于:v22.1
从左侧指定 offset 处返回字符串 s 的子字符串。
语法
参数
s— 要计算子字符串的字符串。String或FixedStringoffset— 偏移量的字节数。(U)Int*
返回值
返回值
- 对于正
offset,从字符串的左侧开始,返回包含offset个字节的s的子字符串。 - 对于负
offset,从字符串的左侧开始,返回包含length(s) - |offset|个字节的s的子字符串。 - 如果
length为0,则返回一个空字符串。String
示例
正偏移量
负偏移量
leftPad
引入于: v21.8
用空格或指定的字符串(如果需要,多次)从左侧填充字符串,直到结果字符串达到指定的 length。
语法
别名: lpad
参数
string— 应填充的输入字符串。Stringlength— 结果字符串的长度。如果该值小于输入字符串的长度,则将输入字符串缩短为length个字符。(U)Int*pad_string— 可选。用于填充输入字符串的字符串。如果未指定,则输入字符串将用空格填充。String
返回值
返回具有给定长度的左填充字符串。 String
示例
使用示例
leftPadUTF8
引入于: v21.8
用空格或指定的字符串(如果需要,多次)从左侧填充 UTF8 字符串,直到结果字符串达到给定的长度。与 leftPad 测量字符串长度(以字节为单位)不同,字符串长度以码点为单位测量。
语法
参数
string— 应填充的输入字符串。Stringlength— 结果字符串的长度。如果该值小于输入字符串的长度,则将输入字符串缩短为length个字符。(U)Int*pad_string— 可选。用于填充输入字符串的字符串。如果未指定,则输入字符串将用空格填充。String
返回值
返回具有给定长度的左填充字符串。 String
示例
使用示例
leftUTF8
引入于:v22.1
从左侧指定 offset 处返回 UTF-8 编码字符串 s 的子字符串。
语法
参数
s— 要计算子字符串的 UTF-8 编码字符串。String或FixedStringoffset— 偏移量的字节数。(U)Int*
返回值
返回值
- 对于正
offset,从字符串的左侧开始,返回包含offset个字节的s的子字符串。\n - 对于负
offset,从字符串的左侧开始,返回包含length(s) - |offset|个字节的s的子字符串。\n - 如果
length为 0,则返回一个空字符串。String
示例
正偏移量
负偏移量
lengthUTF8
引入于:v1.1
以 Unicode 码点而不是字节或字符的形式返回字符串的长度。假定该字符串包含有效的 UTF-8 编码文本。如果违反此假设,则不会抛出异常,结果未定义。
语法
别名: CHARACTER_LENGTH, CHAR_LENGTH
参数
s— 包含有效 UTF-8 编码文本的字符串。String
返回值
字符串 s 的 Unicode 码点长度。 UInt64
示例
使用示例
lower
引入于:v1.1
将 ASCII 字符串转换为小写。
语法
别名: lcase
参数
s— 要转换为小写的字符串。String
返回值
返回从 s 转换成小写的字符串。 String
示例
使用示例
lowerUTF8
引入于:v1.1
将字符串转换为小写,假定该字符串包含有效的 UTF-8 编码文本。如果违反此假设,则不会抛出异常,结果未定义。
语法
参数
input— 要转换为小写的输入字符串。String
返回值
返回小写字符串。 String
示例
first
normalizeUTF8NFC
引入于:v21.11
根据 NFC 归一化形式 归一化 UTF-8 字符串。
语法
参数
str— UTF-8 编码的输入字符串。String
返回值
返回 UTF-8 字符串的 NFC 归一化形式。 String
示例
使用示例
normalizeUTF8NFD
引入于:v21.11
根据 NFD 归一化形式 归一化 UTF-8 字符串。
语法
参数
str— UTF-8 编码的输入字符串。String
返回值
返回 UTF-8 字符串的 NFD 归一化形式。 String
示例
使用示例
normalizeUTF8NFKC
引入于:v21.11
根据 NFKC 归一化形式 归一化 UTF-8 字符串。
语法
参数
str— UTF-8 编码的输入字符串。String
返回值
返回 UTF-8 字符串的 NFKC 归一化形式。 String
示例
使用示例
normalizeUTF8NFKD
引入于:v21.11
根据 NFKD 归一化形式 归一化 UTF-8 字符串。
语法
参数
str— UTF-8 编码的输入字符串。String
返回值
返回 UTF-8 字符串的 NFKD 归一化形式。 String
示例
使用示例
punycodeDecode
引入版本: v24.1
返回 Punycode 编码字符串的 UTF8 编码的纯文本。如果未提供有效的 Punycode 编码字符串,则会抛出异常。
语法
参数
s— Punycode 编码的字符串。String
返回值
返回输入值的纯文本。 String
示例
使用示例
punycodeEncode
引入版本: v24.1
返回字符串的 Punycode 表示形式。该字符串必须是 UTF8 编码的,否则行为未定义。
语法
参数
s— 输入值。String
返回值
返回输入值的 Punycode 表示形式。 String
示例
使用示例
regexpExtract
引入版本: v23.2
提取 haystack 中与 regexp 模式匹配且对应于 regex 组索引的第一个字符串。
语法
别名: REGEXP_EXTRACT
参数
haystack— 将匹配 regexp 模式的字符串。Stringpattern— 字符串,regexp 表达式。pattern可能包含多个 regexp 组,index指示要提取哪个 regex 组。索引 0 表示匹配整个正则表达式。const Stringindex— 可选。一个大于或等于 0 的整数,默认值为 1。它表示要提取哪个 regex 组。(U)Int*
返回值
返回字符串匹配 String
示例
使用示例
repeat
引入于: v20.1
将字符串与其自身连接多次,如指定次数。
语法
参数
返回值
一个包含重复 n 次的字符串 s 的字符串。如果 n 为负数,则该函数返回空字符串。 String
示例
使用示例
reverseUTF8
引入于:v1.1
反转字符串中的 Unicode 码点序列。假定该字符串包含有效的 UTF-8 编码文本。如果违反此假设,则不会抛出异常,结果未定义。
语法
参数
s— 包含有效 UTF-8 编码文本的字符串。String
返回值
返回具有反转 Unicode 码点序列的字符串。 String
示例
使用示例
right
引入于:v22.1
从右侧指定 offset 处返回字符串 s 的子字符串。
语法
参数
s— 要计算子字符串的字符串。String或FixedStringoffset— 偏移量的字节数。(U)Int*
返回值
返回值
- 对于正
offset,从字符串的右侧开始,返回包含offset个字节的s的子字符串。 - 对于负
offset,从字符串的右侧开始,返回包含length(s) - |offset|个字节的s的子字符串。 - 如果
length为0,则返回一个空字符串。String
示例
正偏移量
负偏移量
rightPad
引入于: v21.8
用空格或指定的字符串(如果需要,可以多次重复)从右侧填充字符串,直到结果字符串达到指定的 length。
语法
别名: rpad
参数
string— 应填充的输入字符串。Stringlength— 结果字符串的长度。如果该值小于输入字符串的长度,则将输入字符串缩短为length个字符。(U)Int*pad_string— 可选。用于填充输入字符串的字符串。如果未指定,则输入字符串将用空格填充。String
返回值
返回给定长度的右侧填充字符串。 String
示例
使用示例
rightPadUTF8
引入于: v21.8
用空格或指定的字符串(如果需要,可以多次重复)从右侧填充字符串,直到结果字符串达到给定的长度。与 rightPad 测量字符串长度(以字节为单位)不同,字符串长度以代码点为单位测量。
语法
参数
string— 应填充的输入字符串。Stringlength— 结果字符串的长度。如果该值小于输入字符串的长度,则将输入字符串缩短为length个字符。(U)Int*pad_string— 可选。用于填充输入字符串的字符串。如果未指定,则输入字符串将用空格填充。String
返回值
返回给定长度的右侧填充字符串。 String
示例
使用示例
rightUTF8
引入于:v22.1
返回 UTF-8 编码字符串 s 从右侧开始的指定 offset 的子字符串。
语法
参数
s— 要计算子字符串的 UTF-8 编码字符串。String或FixedStringoffset— 偏移量的字节数。(U)Int*
返回值
返回值
- 对于正
offset,从字符串的右侧开始,返回包含offset个字节的s的子字符串。 - 对于负
offset,从字符串的右侧开始,返回包含length(s) - |offset|个字节的s的子字符串。 - 如果
length为0,则返回一个空字符串。String
示例
正偏移量
负偏移量
soundex
引入于:v23.4
返回字符串的 Soundex 代码。
语法
参数
s— 输入字符串。String
返回值
返回输入字符串的 Soundex 代码。 String
示例
使用示例
space
引入于:v23.5
将空格 ( ) 与自身连接指定的次数。
语法
参数
n— 重复空格的次数。(U)Int*
返回值
返回一个包含空格重复 n 次的字符串。如果 n <= 0,则函数返回空字符串。 String
示例
使用示例
sparseGrams
引入于:v25.5
查找给定字符串的所有子字符串,其长度至少为 n,其中子字符串边界的 (n-1)-gram 的哈希值严格大于子字符串内部的任何 (n-1)-gram 的哈希值。使用 CRC32 作为哈希函数。
语法
参数
s— 输入字符串。Stringmin_ngram_length— 可选。提取 ngram 的最小长度。默认值和最小值是 3。UInt*max_ngram_length— 可选。提取 ngram 的最大长度。默认值为 100。不应小于min_ngram_length。UInt*min_cutoff_length— 可选。如果指定,则仅返回长度大于或等于min_cutoff_length的 n-gram。默认值与min_ngram_length相同。不应小于min_ngram_length且不大于max_ngram_length。UInt*
返回值
返回所选子字符串的数组。 Array(String)
示例
使用示例
sparseGramsHashes
引入于:v25.5
查找给定字符串的所有子字符串的哈希值,其长度至少为 n,其中子字符串边界的 (n-1)-gram 的哈希值严格大于子字符串内部的任何 (n-1)-gram 的哈希值。使用 CRC32 作为哈希函数。
语法
参数
s— 输入字符串。Stringmin_ngram_length— 可选。提取 ngram 的最小长度。默认值和最小值是 3。UInt*max_ngram_length— 可选。提取 ngram 的最大长度。默认值为 100。不应小于min_ngram_length。UInt*min_cutoff_length— 可选。如果指定,则仅返回长度大于或等于min_cutoff_length的 n-gram。默认值与min_ngram_length相同。不应小于min_ngram_length且不大于max_ngram_length。UInt*
返回值
返回所选子字符串的 CRC32 哈希值数组。 Array(UInt32)
示例
使用示例
sparseGramsHashesUTF8
引入于:v25.5
查找给定 UTF-8 字符串的所有子字符串的哈希值,其长度至少为 n,其中子字符串边界的 (n-1)-gram 的哈希值严格大于子字符串内部的任何 (n-1)-gram 的哈希值。期望 UTF-8 字符串,如果 UTF-8 序列无效,则抛出异常。使用 CRC32 作为哈希函数。
语法
参数
s— 输入字符串。Stringmin_ngram_length— 可选。提取 ngram 的最小长度。默认值和最小值是 3。UInt*max_ngram_length— 可选。提取 ngram 的最大长度。默认值为 100。不应小于min_ngram_length。UInt*min_cutoff_length— 可选。如果指定,则仅返回长度大于或等于min_cutoff_length的 n-gram。默认值与min_ngram_length相同。不应小于min_ngram_length且不大于max_ngram_length。UInt*
返回值
返回所选 UTF-8 子字符串的 CRC32 哈希值数组。 Array(UInt32)
示例
使用示例
sparseGramsUTF8
引入于:v25.5
查找给定 UTF-8 字符串的所有子字符串,其长度至少为 n,其中子字符串边界的 (n-1)-gram 的哈希值严格大于子字符串内部的任何 (n-1)-gram 的哈希值。期望 UTF-8 字符串,如果 UTF-8 序列无效,则抛出异常。使用 CRC32 作为哈希函数。
语法
参数
s— 输入字符串。Stringmin_ngram_length— 可选。提取 ngram 的最小长度。默认值和最小值是 3。UInt*max_ngram_length— 可选。提取 ngram 的最大长度。默认值为 100。不应小于min_ngram_length。UInt*min_cutoff_length— 可选。如果指定,则仅返回长度大于或等于min_cutoff_length的 n-gram。默认值与min_ngram_length相同。不应小于min_ngram_length且不大于max_ngram_length。UInt*
返回值
返回所选 UTF-8 子字符串的数组。 Array(String)
示例
使用示例
startsWith
引入于:v1.1
检查字符串是否以提供的字符串开头。
语法
参数
返回值
如果 s 以 prefix 开头,则返回 1,否则返回 0。 UInt8
示例
使用示例
startsWithCaseInsensitive
引入于: v25.9
检查字符串是否以提供的不区分大小写字符串开头。
语法
参数
返回值
如果 s 以不区分大小写的 prefix 开头,则返回 1,否则返回 0。 UInt8
示例
使用示例
startsWithCaseInsensitiveUTF8
引入于: v25.9
检查字符串是否以提供的不区分大小写的前缀开头。假定字符串包含有效的 UTF-8 编码文本。如果违反此假设,则不会抛出异常,结果未定义。
语法
参数
返回值
如果 s 以不区分大小写的 prefix 开头,则返回 1,否则返回 0。 UInt8
示例
使用示例
startsWithUTF8
引入于:v23.8
检查字符串是否以提供的字符串开头。假定字符串包含有效的 UTF-8 编码文本。如果违反此假设,则不会抛出异常,结果未定义。
语法
参数
返回值
如果 s 以 prefix 开头,则返回 1,否则返回 0。 UInt8
示例
使用示例
stringBytesEntropy
引入于: v25.6
计算字符串中字节分布的香农熵。
语法
参数
s— 要分析的字符串。String
返回值
返回字符串中字节分布的香农熵。 Float64
示例
使用示例
stringBytesUniq
引入于: v25.6
计算字符串中不同字节的数量。
语法
参数
s— 要分析的字符串。String
返回值
返回字符串中不同字节的数量。 UInt16
示例
使用示例
stringJaccardIndex
引入于: v23.11
计算两个字节字符串之间的 Jaccard 相似度指数。
语法
参数
返回值
返回两个字符串之间的 Jaccard 相似度指数。 Float64
示例
使用示例
stringJaccardIndexUTF8
引入于: v23.11
类似于 stringJaccardIndex,但适用于 UTF8 编码的字符串。
语法
参数
返回值
返回两个 UTF8 字符串之间的 Jaccard 相似度指数。 Float64
示例
使用示例
substring
引入于:v1.1
返回字符串 s 从指定的字节索引 offset 开始的子字符串。字节计数从 1 开始,逻辑如下
- 如果
offset为0,则返回空字符串。 - 如果
offset为负数,则子字符串从字符串末尾的offset个字符开始,而不是从开头开始。
可选参数 length 指定返回的子字符串的最大字节数。
语法
别名: byteSlice, mid, substr
参数
s— 从中计算子字符串的字符串。String或FixedString或Enumoffset— 子字符串在s中的起始位置。(U)Int*length— 可选。子字符串的最大长度。(U)Int*
返回值
返回从索引 offset 开始,长度为 length 个字节的 s 的子字符串。 String
示例
基本用法
substringIndex
引入于: v23.7
返回 s 在分隔符 delim 之前 count 次出现位置的子字符串,如 Spark 或 MySQL 中那样。
语法
别名: SUBSTRING_INDEX
参数
s— 从中提取子字符串的字符串。Stringdelim— 分隔符。Stringcount— 分隔符出现的次数,用于提取子字符串。如果 count 为正数,则返回从左数起最后一个分隔符左侧的所有内容。如果 count 为负数,则返回从右数起最后一个分隔符右侧的所有内容。UInt或Int
返回值
返回 s 在 count 次 delim 出现位置之前的子字符串。 String
示例
使用示例
substringIndexUTF8
引入于: v23.7
返回 s 在分隔符 delim 之前 count 次出现位置的子字符串,专门针对 Unicode 代码点。假定字符串包含有效的 UTF-8 编码文本。如果违反此假设,则不会抛出异常,结果未定义。
语法
参数
s— 从中提取子字符串的字符串。Stringdelim— 分隔符。Stringcount— 分隔符出现的次数,用于提取子字符串。如果 count 为正数,则返回从左数起最后一个分隔符左侧的所有内容。如果 count 为负数,则返回从右数起最后一个分隔符右侧的所有内容。UInt或Int
返回值
返回 s 在 count 次 delim 出现位置之前的子字符串。 String
示例
UTF8 示例
substringUTF8
引入于:v1.1
返回字符串 s 从指定的代码点索引 offset 开始的子字符串。代码点计数从 1 开始,逻辑如下
- 如果
offset为0,则返回空字符串。 - 如果
offset为负数,则子字符串从字符串末尾的offset个代码点开始,而不是从开头开始。
可选参数 length 指定返回的子字符串的最大代码点数。
此函数假定字符串包含有效的 UTF-8 编码文本。如果违反此假设,则不会抛出异常,结果未定义。
语法
参数
s— 从中计算子字符串的字符串。String或FixedString或Enumoffset— 子字符串在s中的起始位置。Int或UIntlength— 子字符串的最大长度。可选。Int或UInt
返回值
返回从代码点索引 offset 开始,具有 length 个代码点的字符串 s 的子字符串。 String
示例
使用示例
toValidUTF8
引入于: v20.1
通过将任何无效的 UTF-8 字符替换为替换字符 � (U+FFFD) 将字符串转换为有效的 UTF-8 编码。当发现多个连续的无效字符时,它们将被折叠成单个替换字符。
语法
参数
s— 表示 String 数据类型对象的任何字节集。String
返回值
返回有效的 UTF-8 字符串。 String
示例
使用示例
trimBoth
引入于: v20.1
删除字符串开头和结尾的指定字符。默认情况下,删除常见的空白(ASCII)字符。
语法
别名: trim
参数
返回值
返回从两端修剪了指定字符的字符串。 String
示例
使用示例
trimLeft
引入于: v20.1
删除字符串开头的指定字符。默认情况下,删除常见的空白(ASCII)字符。
语法
别名: ltrim
参数
返回值
返回从左侧修剪了指定字符的字符串。 String
示例
使用示例
trimRight
引入于: v20.1
删除字符串结尾的指定字符。默认情况下,删除常见的空白(ASCII)字符。
语法
别名: rtrim
参数
返回值
返回从右侧修剪了指定字符的字符串。 String
示例
使用示例
tryBase32Decode
引入于: v25.6
接受一个字符串,并使用 Base32 编码方案对其进行解码。
语法
参数
encoded— 要解码的字符串列或常量。如果字符串不是有效的 Base32 编码,则在出错时返回一个空字符串。String
返回值
返回包含参数解码值的字符串。 String
示例
使用示例
tryBase58Decode
引入于:v22.10
类似于 base58Decode,但在出错时返回一个空字符串。
语法
参数
encoded— 字符串列或常量。如果字符串不是有效的 Base58 编码,则在出错时返回一个空字符串。String
返回值
返回包含参数解码值的字符串。 String
示例
使用示例
tryBase64Decode
引入于: v18.16
类似于 base64Decode,但在出错时返回一个空字符串。
语法
参数
encoded— 要解码的字符串列或常量。如果字符串不是有效的 Base64 编码,则在出错时返回一个空字符串。String
返回值
返回包含参数解码值的字符串。 String
示例
使用示例
tryBase64URLDecode
引入于: v18.16
类似于 base64URLDecode,但在出错时返回一个空字符串。
语法
参数
encoded— 要解码的字符串列或常量。如果字符串不是有效的 Base64 编码,则在出错时返回一个空字符串。String
返回值
返回包含参数解码值的字符串。 String
示例
使用示例
tryIdnaEncode
引入版本: v24.1
根据 国际化域名应用程序 (IDNA) 机制返回域名的 Unicode (UTF-8) 表示形式(ToUnicode 算法)。如果发生错误,它将返回一个空字符串而不是抛出异常。
语法
参数
s— 输入字符串。String
返回值
根据 IDNA 机制返回输入的 ASCII 表示形式,或者如果输入无效则返回空字符串。 String
示例
使用示例
tryPunycodeDecode
引入版本: v24.1
类似于 punycodeDecode,但如果未提供有效的 Punycode 编码字符串,则返回一个空字符串。
语法
参数
s— Punycode 编码的字符串。String
返回值
返回输入的明文,或者如果输入无效则返回空字符串。 String
示例
使用示例
upper
引入于:v1.1
将字符串中的 ASCII 拉丁符号转换为大写。
语法
别名: ucase
参数
s— 要转换为大写的字符串。String
返回值
从 s 返回一个大写字符串。 String
示例
使用示例
upperUTF8
引入于:v1.1
将字符串转换为大写,假设该字符串包含有效的 UTF-8 编码文本。如果违反了此假设,则不会抛出异常,结果未定义。
此函数不检测语言,例如对于土耳其语,结果可能不完全正确 (i/İ 与 i/I)。如果代码点的上下大小写 UTF-8 字节序列的长度不同(例如 ẞ 和 ß),则该代码点的结果可能不正确。
语法
参数
s— 一种字符串类型。String
返回值
一种 String 数据类型值。 String
示例
使用示例