Traducción no oficial al español rioplatense, generada con IA (Claude Sonnet 5.5) bajo la dirección y revisión de Jassiel Ovando. No es una publicación de Typst GmbH ni cuenta con su aval; ante cualquier duda, prevalece la documentación oficial en inglés. ¿Un error de traducción o una sugerencia? Reportalo. Tipografía: Reforma, de PampaType.

strDesde: siempreIr al código fuente

Una secuencia de puntos de código Unicode.

Podés iterar sobre los grupos de grafemas de la cadena con un bucle for. Los grupos de grafemas son básicamente caracteres, pero mantienen juntas las cosas que van juntas, por ejemplo, varios puntos de código que en conjunto forman un emoji de bandera. Las cadenas de texto se pueden sumar con el operador +, unir y multiplicar por enteros.

Typst ofrece métodos de utilidad para manipular cadenas de texto. Muchos de estos métodos (por ejemplo, split, trim y replace) operan sobre patrones: un patrón puede ser una cadena de texto o una expresión regular. Esto hace que los métodos sean muy versátiles.

Todas las longitudes e índices se expresan en bytes UTF-8. Los índices empiezan en cero y los índices negativos dan la vuelta hasta el final de la cadena.

Podés convertir un valor en cadena de texto con el constructor str.

Ejemplo

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

Secuencias de escape

Igual que en el marcado, en las cadenas de texto podés escapar algunos símbolos:

Constructor
Signo de pregunta
Ir al código fuente

Convierte un valor en una cadena de texto.

Si querés convertir desde y hacia puntos de código Unicode, mirá las funciones to-unicode y from-unicode.

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

value
int o float o decimal o str o label o bytes o version o type
ObligatorioPosicional
Signo de pregunta

El valor que se debe convertir en cadena de texto.

basePor defecto: 10

La base (raíz) en la que se muestran los enteros, entre 2 y 36.

Funciones
Signo de pregunta

lenDesde: siempreIr al código fuente

La longitud de la cadena en bytes codificados en UTF-8.

self.len() → int

firstDesde: siempreIr al código fuente

Extrae el primer grupo de grafemas de la cadena.

Devuelve el valor por defecto indicado si la cadena está vacía, o falla con un error si no se especificó ningún valor por defecto.

self.first(default: str) → str

default

Un valor por defecto para devolver si la cadena está vacía.

lastDesde: siempreIr al código fuente

Extrae el último grupo de grafemas de la cadena.

Devuelve el valor por defecto indicado si la cadena está vacía, o falla con un error si no se especificó ningún valor por defecto.

self.last(default: str) → str

default

Un valor por defecto para devolver si la cadena está vacía.

atDesde: siempreIr al código fuente

Extrae el primer grupo de grafemas después del índice especificado. Devuelve el valor por defecto si el índice está fuera de rango, o falla con un error si no se especificó ningún valor por defecto.

self.at(
int,default: any,
) → any

index
int
ObligatorioPosicional
Signo de pregunta

El índice de bytes. Si es negativo, se indexa desde el final.

default
any

Un valor por defecto para devolver si el índice está fuera de rango.

sliceDesde: siempreIr al código fuente

Extrae una subcadena de la cadena. Falla con un error si el índice de inicio o de fin está fuera de rango.

self.slice() → str

start
int
ObligatorioPosicional
Signo de pregunta

El índice de bytes inicial (inclusivo). Si es negativo, se indexa desde el final.

end
none o int
Posicional
Signo de pregunta
Por defecto: none

El índice de bytes final (exclusivo). Si se omite, se extrae toda la porción hasta el final de la cadena. Si es negativo, se indexa desde el final.

count

La cantidad de bytes que se extraen. Equivale a pasar start + count como posición end. Es mutuamente excluyente con end.

clustersDesde: siempreIr al código fuente

Devuelve los grupos de grafemas de la cadena como un array de subcadenas.

self.clusters() → array

codepointsDesde: siempreIr al código fuente

Devuelve los puntos de código Unicode de la cadena como un array de subcadenas.

self.codepoints() → array

to-unicodeDesde: 0.5.0Ir al código fuente

Convierte un carácter en su punto de código correspondiente.

ExpandirVer ejemplo
#"a".to-unicode() \ #("a\u{0300}" .codepoints() .map(str.to-unicode))
str.to-unicode(str) → int

character
str
ObligatorioPosicional
Signo de pregunta

El carácter que se debe convertir.

from-unicodeDesde: 0.5.0Ir al código fuente

Convierte un punto de código Unicode en su cadena correspondiente.

ExpandirVer ejemplo
#str.from-unicode(97)
str.from-unicode(int) → str

value
int
ObligatorioPosicional
Signo de pregunta

El punto de código que se debe convertir.

normalizeDesde: 0.14.0Ir al código fuente

Normaliza la cadena a la forma normal Unicode indicada.

Esto es útil al manipular cadenas que contienen caracteres combinados de Unicode.

#assert.eq("é".normalize(form: "nfd"), "e\u{0301}")
#assert.eq("ſ́".normalize(form: "nfkc"), "ś")
self.normalize(form: str) → str

formPor defecto: "nfc"

VarianteDetalles
"nfc"Composición canónica, en la que, por ejemplo, las letras acentuadas se convierten en un único punto de código Unicode.
"nfd"Descomposición canónica, en la que, por ejemplo, las letras acentuadas se dividen en una base y un signo diacrítico separados.
"nfkc"Como NFC, pero usando las descomposiciones de compatibilidad de Unicode.
"nfkd"Como NFD, pero usando las descomposiciones de compatibilidad de Unicode.

containsDesde: siempreIr al código fuente

Si la cadena contiene el patrón especificado.

Este método también tiene una sintaxis dedicada: podés escribir "bc" in "abcd" en lugar de "abcd".contains("bc").

self.contains(strregex) → bool

pattern
str o regex
ObligatorioPosicional
Signo de pregunta

El patrón que se busca.

starts-withDesde: siempreIr al código fuente

Si la cadena empieza con el patrón especificado.

self.starts-with(strregex) → bool

pattern
str o regex
ObligatorioPosicional
Signo de pregunta

El patrón con el que podría empezar la cadena.

ends-withDesde: siempreIr al código fuente

Si la cadena termina con el patrón especificado.

self.ends-with(strregex) → bool

pattern
str o regex
ObligatorioPosicional
Signo de pregunta

El patrón con el que podría terminar la cadena.

findDesde: siempreIr al código fuente

Busca el patrón especificado en la cadena y devuelve la primera coincidencia como cadena de texto, o none si no hay ninguna.

self.find(strregex) → nonestr

pattern
str o regex
ObligatorioPosicional
Signo de pregunta

El patrón que se busca.

positionDesde: siempreIr al código fuente

Busca el patrón especificado en la cadena y devuelve el índice de la primera coincidencia como entero, o none si no hay ninguna.

self.position(strregex) → noneint

pattern
str o regex
ObligatorioPosicional
Signo de pregunta

El patrón que se busca.

matchDesde: siempreIr al código fuente

Busca el patrón especificado en la cadena y devuelve un diccionario con detalles sobre la primera coincidencia, o none si no hay ninguna.

El diccionario devuelto tiene las siguientes claves:

ExpandirVer ejemplo: Forma del diccionario devuelto
#let pat = regex("not (a|an) (apple|cat)") #"I'm a doctor, not an apple.".match(pat) \ #"I am not a cat!".match(pat)
ExpandirVer ejemplo: Distintos tipos de patrones
#assert.eq("Is there a".match("for this?"), none) #"The time of my life.".match(regex("[mit]+e"))
self.match(strregex) → nonedictionary

pattern
str o regex
ObligatorioPosicional
Signo de pregunta

El patrón que se busca.

matchesDesde: siempreIr al código fuente

Busca el patrón especificado en la cadena y devuelve un array de diccionarios con detalles sobre todas las coincidencias. Para más detalles sobre los diccionarios devueltos, mirá arriba.

ExpandirVer ejemplo
#"Day by Day.".matches("Day")
self.matches(strregex) → array

pattern
str o regex
ObligatorioPosicional
Signo de pregunta

El patrón que se busca.

replaceDesde: siempreIr al código fuente

Reemplaza como máximo count apariciones del patrón indicado por una cadena o función de reemplazo (empezando desde el principio). Si no se indica una cantidad, se reemplazan todas las apariciones.

self.replace() → str

pattern
str o regex
ObligatorioPosicional
Signo de pregunta

El patrón que se busca.

replacement
str o function
ObligatorioPosicional
Signo de pregunta

La cadena por la que se reemplazan las coincidencias, o una función que recibe un diccionario por cada coincidencia y puede devolver cadenas de reemplazo individuales.

El diccionario que se le pasa a la función tiene la misma forma que el diccionario devuelto por match.

count

Si se indica, solo se reemplazan las primeras count coincidencias del patrón.

trimDesde: siempreIr al código fuente

Elimina las coincidencias de un patrón de uno o ambos lados de la cadena, una vez o repetidamente, y devuelve la cadena resultante.

pattern
none o str o regex
Posicional
Signo de pregunta
Por defecto: none

El patrón que se busca. Si es none, recorta los espacios en blanco.

at

Puede ser start o end para recortar solo el inicio o el final de la cadena. Si se omite, se recortan ambos lados.

repeatPor defecto: true

Si se eliminan repetidamente las coincidencias del patrón o solo una vez. Por defecto es true.

splitDesde: siempreIr al código fuente

Divide una cadena en las coincidencias de un patrón especificado y devuelve un array con las partes resultantes.

Cuando se usa la cadena vacía como separador, se separa cada carácter (es decir, cada punto de código Unicode) de la cadena, junto con el principio y el final. En la práctica, esto significa que la lista de partes resultante contendrá la cadena vacía al principio y al final.

self.split(nonestrregex) → array

pattern
none o str o regex
Posicional
Signo de pregunta
Por defecto: none

El patrón por el que se divide. Por defecto son los espacios en blanco.

revDesde: 0.8.0Ir al código fuente

Invierte la cadena.

Más específicamente, devuelve una cadena con los mismos grupos de grafemas, en orden inverso.

ExpandirVer ejemplo
#"Pirate flag: 🏴‍☠️".rev()
self.rev() → str