注意:该页面为保留旧有翻译而留下的,新文档并没有该页面,请注意甄别。新的文档可以在 “基础” 部分找到,不过暂未未完全翻译完毕。Typst 非官方中文交流 QQ 群:793548390
Warning: the Chinese document is a community-driven non-official document, there may be mistranslation, omission or outdated problems, please refer to the official website documentation.
Typst 中文文档

string

一串 Unicode 代码点(codepoints)。

你可以使用 for 循环遍历字符串的字符簇(grapheme clusters)。 字符簇基本上是字符,但它们将属于一起的内容保持在一起,例如多个代码点一起形成一个国旗表情符号。 字符串可以使用 + 运算符相加,连接在一起,并与整数相乘。

Typst 提供了用于字符串操作的实用方法。 其中许多方法(例如 split, trimreplace)操作模式:模式可以是字符串或正则表达式。 这使得这些方法非常灵活。

所有长度和索引都以 UTF-8 字符为单位。 索引从零开始,负索引会回到字符串的末尾。

Example

#"hello world!" \
#"\"hello\n  world\"!" \
#"1 2 3".split() \
#"1,2;3".split(regex("[,;]")) \
#(regex("\d+") in "ten euros") \
#(regex("\d+") in "10 euros")
Preview

转义序列

与标记语言类似,您可以在字符串中转义一些符号:

方法
方法是可用于该类型的一系列函数,可以使用 "." 操作符调用它们。

len method

字符串在UTF-8编码字节中的长度。

value.len(
) -> integer

first method

提取字符串的第一个字形簇。如果字符串为空,则会失败并显示错误。

value.first(
) -> any

last method

提取字符串的最后一个字形簇。如果字符串为空,则会失败并显示错误。

value.last(
) -> any

at method

提取指定索引后的第一个字形簇。 如果索引超出范围,则返回默认值;如果没有指定默认值,则会失败并显示错误。

value.at() -> string

index
integer
必需参数位置参数
位置参数按顺序传入,不带名称。

字节索引。

default
any

如果索引超出范围,返回的默认值。

slice method

提取字符串的子串。如果开始索引或结束索引超出范围,则会失败并显示错误。

value.slice() -> string

start
integer
必需参数位置参数
位置参数按顺序传入,不带名称。

起始字节索引(包含在内)。

end
integer
位置参数
位置参数按顺序传入,不带名称。

结束字节索引(不包含在内)。如果省略,则提取整个字符串直到末尾。

count

要提取的字节数。这相当于将 start + count 作为结束位置。与 end 互斥。

clusters method

将字符串的字形簇作为子字符串数组返回。

value.clusters(
) -> array

codepoints method

将字符串的 Unicode 码点作为子字符串数组返回。

value.codepoints(
) -> array

contains method

判断字符串是否包含指定的模式。

该方法还有专门的语法:您可以使用 "bc" in "abcd" 代替 "abcd".contains("bc")

value.contains() -> boolean

pattern
string regex
必需参数位置参数
位置参数按顺序传入,不带名称。

搜索的模式。

starts-with method

判断字符串是否以指定的模式开始。

value.starts-with() -> boolean

pattern
string regex
必需参数位置参数
位置参数按顺序传入,不带名称。

字符串可能开始的模式。

ends-with method

判断字符串是否以指定的模式结尾。

value.ends-with() -> boolean

pattern
string regex
必需参数位置参数
位置参数按顺序传入,不带名称。

字符串可能结尾的模式。

find method

Searches for the specified pattern in the string and returns the first match as a string or none if there is no match.

value.find() -> stringnone

pattern
string regex
必需参数位置参数
位置参数按顺序传入,不带名称。

The pattern to search for.

position method

在字符串中搜索指定的模式,并返回第一个匹配项的索引,如果没有匹配项则返回 none

value.position() -> integernone

pattern
string regex
必需参数位置参数
位置参数按顺序传入,不带名称。

搜索的模式。

match method

在字符串中搜索指定的模式,并返回一个包含第一个匹配项详细信息的字典,如果没有匹配项则返回 none

返回的字典具有以下键:

value.match() -> dictionarynone

pattern
string regex
必需参数位置参数
位置参数按顺序传入,不带名称。

搜索的模式。

matches method

在字符串中搜索指定的模式,并返回一个包含所有匹配项详细信息的字典数组。有关返回的字典的详细信息,请参见上文。

value.matches() -> array

pattern
string regex
必需参数位置参数
位置参数按顺序传入,不带名称。

搜索的模式。

replace method

替换所有或指定数量的匹配项的模式为替换字符串,并返回结果字符串。

pattern
string regex
必需参数位置参数
位置参数按顺序传入,不带名称。

搜索的模式。

replacement
string function
必需参数位置参数
位置参数按顺序传入,不带名称。

用于替换匹配项的字符串,或者一个函数,该函数会针对每个匹配项获取一个字典,并可以返回单独的替换字符串。

count

如果指定了 count 参数,只会替换模式的前 count 个匹配项。

trim method

从字符串的一侧或两侧移除匹配模式的内容,可以选择一次性或重复操作,并返回结果字符串。

pattern
string regex
必需参数位置参数
位置参数按顺序传入,不带名称。

搜索的模式。

at

可以使用 startend 来仅修剪字符串的开头或结尾。如果省略,则会修剪字符串的两侧。

repeat

决定是重复移除模式的匹配项还是只移除一次。默认为 true

split method

将字符串按指定的模式进行分割,并返回结果部分的数组。

value.split() -> array

pattern
string regex
位置参数
位置参数按顺序传入,不带名称。

要进行分割的模式。默认为空格。