注意 / Info
本站经 Typst GmbH 许可,提供 Typst v0.10.0+后期随缘更新 官方文档的翻译,由中文社区维护。建议与官方文档一同阅读,因为可能存在错译、漏译或过时信息。如有意改进翻译内容或网站本身,可在GitHub上提出 Issue、发起 Pull Requests。此外,也欢迎加入「Typst 非官方中文交流群」(QQ 793548390)
This site provides a Chinese translation of the Typst v0.10.0+后期随缘更新 documentation maintained by the “Typst Chinese Community” with permission from Typst GmbH. We recommend using this alongside the official documentation. We welcome contributions through Issues and Pull Requests on our GitHub repository for both translation improvements and website enhancements. Feel free to join our QQ chat group “Typst 非官方中文交流群” (793548390).
Typst文档简体中文版
v0.10.0+后期随缘更新

str

A sequence of Unicode codepoints.

You can iterate over the grapheme clusters of the string using a for loop. Grapheme clusters are basically characters but keep together things that belong together, e.g. multiple codepoints that together form a flag emoji. Strings can be added with the + operator, joined together and multiplied with integers.

Typst provides utility methods for string manipulation. Many of these methods (e.g., split, trim and replace) operate on patterns: A pattern can be either a string or a regular expression. This makes the methods quite versatile.

All lengths and indices are expressed in terms of UTF-8 bytes. Indices are zero-based and negative indices wrap around to the end of the string.

You can convert a value to a string with this type's constructor.

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

Escape sequences

Just like in markup, you can escape a few symbols in strings:

  • \\ for a backslash
  • \" for a quote
  • \n for a newline
  • \r for a carriage return
  • \t for a tab
  • \u{1f600} for a hexadecimal Unicode escape sequence

构造函数
参数
参数是传给函数的输入,写在函数名后的括号中。

Converts a value to a string.

  • Integers are formatted in base 10. This can be overridden with the optional base parameter.
  • Floats are formatted in base 10 and never in exponential notation.
  • From labels the name is extracted.
  • Bytes are decoded as UTF-8.

If you wish to convert from and to Unicode code points, see the to-unicode and from-unicode functions.

#str(10) \
#str(4000, base: 16) \
#str(2.7) \
#str(1e8) \
#str(<intro>)
Preview

value
必需参数
必需参数
必需参数在调用函数时必须传入。
位置参数
位置参数
位置参数按顺序传入,不带参数名。

The value that should be converted to a string.

base

The base (radix) to display integers in, between 2 and 36.

默认值:

10

定义
定义
这些函数和类型带有附属定义。要访问这种定义,请先写上函数或类型的名称,再加上定义的名称,并用句点在中间分隔。

len

The length of the string in UTF-8 encoded bytes.

self.len(
)->

first

Extracts the first grapheme cluster of the string. Fails with an error if the string is empty.

self.first(
)->

last

Extracts the last grapheme cluster of the string. Fails with an error if the string is empty.

self.last(
)->

at

Extracts the first grapheme cluster after the specified index. Returns the default value if the index is out of bounds or fails with an error if no default value was specified.

self.at()->
any

index
必需参数
必需参数
必需参数在调用函数时必须传入。
位置参数
位置参数
位置参数按顺序传入,不带参数名。

The byte index. If negative, indexes from the back.

default
any

A default value to return if the index is out of bounds.

slice

Extracts a substring of the string. Fails with an error if the start or end index is out of bounds.

self.slice()->

start
必需参数
必需参数
必需参数在调用函数时必须传入。
位置参数
位置参数
位置参数按顺序传入,不带参数名。

The start byte index (inclusive). If negative, indexes from the back.

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

The end byte index (exclusive). If omitted, the whole slice until the end of the string is extracted. If negative, indexes from the back.

默认值:

none

count

The number of bytes to extract. This is equivalent to passing start + count as the end position. Mutually exclusive with end.

clusters

Returns the grapheme clusters of the string as an array of substrings.

self.clusters(
)->

codepoints

Returns the Unicode codepoints of the string as an array of substrings.

self.codepoints(
)->

to-unicode

Converts a character into its corresponding code point.

str.to-unicode()->
展开例子
#"a".to-unicode() \
#("a\u{0300}"
   .codepoints()
   .map(str.to-unicode))
Preview

character
必需参数
必需参数
必需参数在调用函数时必须传入。
位置参数
位置参数
位置参数按顺序传入,不带参数名。

The character that should be converted.

from-unicode

Converts a unicode code point into its corresponding string.

str.from-unicode()->
展开例子
#str.from-unicode(97)
Preview

value
必需参数
必需参数
必需参数在调用函数时必须传入。
位置参数
位置参数
位置参数按顺序传入,不带参数名。

The code point that should be converted.

contains

Whether the string contains the specified pattern.

This method also has dedicated syntax: You can write "bc" in "abcd" instead of "abcd".contains("bc").

self.contains()->

pattern
必需参数
必需参数
必需参数在调用函数时必须传入。
位置参数
位置参数
位置参数按顺序传入,不带参数名。

The pattern to search for.

starts-with

Whether the string starts with the specified pattern.

self.starts-with()->

pattern
必需参数
必需参数
必需参数在调用函数时必须传入。
位置参数
位置参数
位置参数按顺序传入,不带参数名。

The pattern the string might start with.

ends-with

Whether the string ends with the specified pattern.

self.ends-with()->

pattern
必需参数
必需参数
必需参数在调用函数时必须传入。
位置参数
位置参数
位置参数按顺序传入,不带参数名。

The pattern the string might end with.

find

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

self.find()->

pattern
必需参数
必需参数
必需参数在调用函数时必须传入。
位置参数
位置参数
位置参数按顺序传入,不带参数名。

The pattern to search for.

position

Searches for the specified pattern in the string and returns the index of the first match as an integer or none if there is no match.

self.position()->

pattern
必需参数
必需参数
必需参数在调用函数时必须传入。
位置参数
位置参数
位置参数按顺序传入,不带参数名。

The pattern to search for.

match

Searches for the specified pattern in the string and returns a dictionary with details about the first match or none if there is no match.

The returned dictionary has the following keys:

  • start: The start offset of the match
  • end: The end offset of the match
  • text: The text that matched.
  • captures: An array containing a string for each matched capturing group. The first item of the array contains the first matched capturing, not the whole match! This is empty unless the pattern was a regex with capturing groups.
self.match()->

pattern
必需参数
必需参数
必需参数在调用函数时必须传入。
位置参数
位置参数
位置参数按顺序传入,不带参数名。

The pattern to search for.

matches

Searches for the specified pattern in the string and returns an array of dictionaries with details about all matches. For details about the returned dictionaries, see above.

self.matches()->

pattern
必需参数
必需参数
必需参数在调用函数时必须传入。
位置参数
位置参数
位置参数按顺序传入,不带参数名。

The pattern to search for.

replace

Replace at most count occurrences of the given pattern with a replacement string or function (beginning from the start). If no count is given, all occurrences are replaced.

pattern
必需参数
必需参数
必需参数在调用函数时必须传入。
位置参数
位置参数
位置参数按顺序传入,不带参数名。

The pattern to search for.

replacement
必需参数
必需参数
必需参数在调用函数时必须传入。
位置参数
位置参数
位置参数按顺序传入,不带参数名。

The string to replace the matches with or a function that gets a dictionary for each match and can return individual replacement strings.

count

If given, only the first count matches of the pattern are placed.

trim

Removes matches of a pattern from one or both sides of the string, once or repeatedly and returns the resulting string.

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

The pattern to search for.

默认值:

none

at

Can be start or end to only trim the start or end of the string. If omitted, both sides are trimmed.

repeat

Whether to repeatedly removes matches of the pattern or just once. Defaults to true.

默认值:

true

split

Splits a string at matches of a specified pattern and returns an array of the resulting parts.

self.split()->

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

The pattern to split at. Defaults to whitespace.

默认值:

none

rev

Reverse the string.

self.rev(
)->
转到官方文档(英文)

搜索