Red de conocimiento informático - Aprendizaje de programación - Lua Getting Started Notes 7 Biblioteca de cadenas

Lua Getting Started Notes 7 Biblioteca de cadenas

La cadena en Lua es la misma que en c#. Una vez que el valor del tipo de cadena cambia, se debe abrir un espacio para el nuevo valor y apuntar a este espacio. Es decir, cada vez que se cambia la variable de cadena, se devuelve un nuevo valor. No habrá más explicaciones en la siguiente función.

Hay muchos otros. A continuación se muestran sólo algunos ejemplos.

Debido a consideraciones de tamaño, Lua no admite expresiones regulares. En cambio, utiliza su propia coincidencia de patrones.

La función string.find se utiliza para buscar un patrón en una cadena de destino determinada. Lo más sencillo es buscar una palabra. Si se usa la palabra Zhao Ao, devolverá el índice real y el final de la palabra. Si no se encuentra, devolverá nil

Si la coincidencia es exitosa, puede usar una cadena y devolver. valor de buscar para llamar string.sub Para extraer la subcadena que coincide con el patrón en la cadena de destino.

string.find también tiene un tercer parámetro opcional, que es un índice que le indica a la función dónde comenzar a buscar en la cadena de destino.

La función string.math es similar a la función string.find en el sentido de que también usa un patrón para buscar en una cadena. La diferencia es que string.math devuelve la subcadena de la cadena de destino que coincide con el patrón, no la posición.

Esta función puede no tener sentido para patrones fijos como "hola". Pero al utilizar el patrón variable, sus características emergen.

La función string.gusb tiene 3 parámetros: cadena de destino, patrón y cadena de reemplazo. Su función es reemplazar todas las apariciones del patrón con la cadena de reemplazo. hay El cuarto parámetro seleccionado puede limitar el número de sustituciones

La función es string.gsub y hay otro resultado, que es el número real de sustituciones. Por ejemplo, el siguiente es un método simple para contar. el número de espacios en una cadena

string.gmatch devuelve una función. A través de esta función, puede recorrer todos los lugares donde aparece el patrón especificado en una cadena.

El patrón "a" representa una secuencia que coincide con uno o más caracteres alfabéticos (es decir, una palabra. Todas las palabras se recorrerán y almacenarán en ella). "Punto" tiene un significado especial en los patrones, por lo que para representar un punto debes escribir "."

Ten en cuenta el uso de clases de caracteres para crear patrones más útiles. La clasificación de personajes es un elemento del patrón. Puede coincidir con cualquier personaje en una suma superior. Por ejemplo, la categoría "d" puede coincidir con cualquier número. Por ejemplo, puede utilizar

"dd/dd/dddd" para buscar fechas en el formato "dd/mm/aaaa"

Las siguientes son todas categorías de caracteres

Las líneas mayúsculas de estas categorías representan sus complementos, por ejemplo "A" representa todos los caracteres no alfabéticos

Dentro del patrón, también hay algunas cadenas llamadas "caracteres mágicos" que tienen características especiales. significados. Estos caracteres mágicos son

{ } . - * ? [ ] ^ $

Las cadenas sirven como caracteres de escape para estos caracteres mágicos, por ejemplo, "." significa hacer coincidir un punto "". significa hacer coincidir el carácter "" Puede usar "" no solo para caracteres mágicos, sino también para todos los demás caracteres no alfanuméricos. Cuando no esté seguro de si es necesario utilizar un carácter de escape, debe precederlo directamente con un carácter de escape.

Para lua, el patrón es una cadena ordinaria. Y recuerda que sigue las mismas reglas que las cuerdas.

Sólo las funciones de modo los interpretarán, en cuyo caso los parámetros tratarán a "" como un carácter de escape.

Al combinar diferentes categorías de caracteres o caracteres individuales dentro de un grupo de corchetes, puedes crear tu propia categoría de caracteres. Esta nueva categoría de caracteres se llama conjunto de caracteres (conjunto de caracteres). Por ejemplo, el juego de caracteres ["w_"] significa letras, números y guiones bajos coincidentes. El juego de caracteres [01] significa hacer coincidir dígitos binarios. El juego de caracteres [[]] significa hacer coincidir el propio corchete. Si necesita contar el número de vocales en un fragmento de texto, puede escribir así

La forma de representar un rango de caracteres en un conjunto de caracteres es escribir el primer carácter y el último carácter de el rango y conectarlos con una línea horizontal, pero esta forma rara vez se usa porque los rangos de caracteres más utilizados ya están predefinidos. Por ejemplo, [0-9] es d

[0-9a-fA-F] es "x". Sin embargo, si necesitas encontrar un número octal, puedes escribir [0-7]. y no [01234567]. Agregar un '^' antes de un conjunto de caracteres puede representar el complemento de este conjunto de caracteres. Por ejemplo, [^0-7] representa todos los caracteres que no son dígitos octales. El patrón [^\n] representa caracteres distintos de las nuevas líneas. Para una clasificación simple, el uso de mayúsculas también puede obtener su complemento, "S" es obviamente mejor que [^s] Respuesta corta

Las partes opcionales repetidas en el patrón también se pueden ignorar mediante modificadores. Lua proporciona cuatro modificadores

" " La ciencia del modificador se asigna a uno o más caracteres de una clasificación de cadena. Siempre obtiene la secuencia más larga que coincide con el patrón. El patrón "a" representa una o más letras, es decir, palabras:

El patrón "d" coincide con una o más matrices (un número entero)

p>

El modificador "*" es similar a " ", pero también acepta 0 apariciones. Un uso típico es unir espacios entre diferentes partes de un patrón. Por ejemplo, para hacer coincidir un par de paréntesis como () o (), puedes usar "(s*)" donde s* puede hacer coincidir 0 con múltiples espacios

Otro ejemplo es usar el patrón "[ _a][_w]*" para hacer coincidir identificadores en Lua. Un identificador es una secuencia que comienza con una letra o guión bajo y seguida de 0 hasta más guiones bajos, letras o números.

El modificador "-", como "*", también se utiliza para hacer coincidir cero o más caracteres. Pero coincidirá con la subcadena más corta. Aunque parece no haber diferencia entre los dos, los efectos son completamente diferentes. Si utiliza "[_a][_w]-" para buscar un identificador, solo encontrará la primera letra, porque "[_w]-" siempre coincide con la cadena vacía. Supongamos que desea buscar comentarios en un programa C, normalmente probará primero con "/*.*/". Luego, dado que ".*" se expandirá tanto como sea posible, el primer "/*" del programa solo será. en comparación con las últimas coincidencias "* /"

Pero si se usa ".-", quedará así

El modificador "?" se usa para hacer coincidir un carácter opcional. Por ejemplo, desea encontrar un número entero en un fragmento de texto y el número entero puede incluir un signo opcional. Luego use el modo "[ -]?d " para completar esta tarea. Puede coincidir con números como "-12" "23" "1000" y "[ -]" es una clasificación de caracteres que coincide con los signos ' ' y '-', seguidos de '? 'Indica que este símbolo es opcional. A diferencia de otros sistemas, los modificadores en Lua solo se pueden usar para una categoría de personaje y no pueden modificar un grupo de categorías. No se puede escribir un patrón que coincida con los trazos opcionales.

Si un patrón comienza con '^', solo coincidirá con el comienzo de la cadena de destino. Si el patrón termina con '$', solo coincidirá con el final de la cadena de destino.

En patrones, también puedes usar "b" para unir pares de caracteres. Está escrito como "blt; xgt; lt; ygt;" donde lt; xgt y lt; Por ejemplo, el patrón "b()" puede coincidir con subcadenas que comienzan con '(' y terminan con ')'

La cadena en Lua es la misma que en c# Una vez que el valor del tipo de cadena. cambios. Para dejar espacio para el nuevo valor, señale este espacio. Es decir, cada vez que se cambia la variable de cadena, se devuelve un nuevo valor. No habrá más explicaciones en la siguiente función.

Hay muchos otros. A continuación se muestran sólo algunos ejemplos.

Debido a consideraciones de tamaño, Lua no admite expresiones regulares. En cambio, utiliza su propia coincidencia de patrones.

La función string.find se utiliza para buscar un patrón en una cadena de destino determinada. Lo más sencillo es buscar una palabra. Si se usa la palabra Zhao Ao, devolverá el índice real y el final de la palabra. Si no se encuentra, devolverá nil

Si la coincidencia es exitosa, puede usar una cadena y devolver. valor de buscar para llamar string.sub Para extraer la subcadena que coincide con el patrón en la cadena de destino.

string.find también tiene un tercer parámetro opcional, que es un índice que le indica a la función dónde comenzar a buscar en la cadena de destino.

La función string.math es similar a la función string.find en el sentido de que también usa un patrón para buscar en una cadena. La diferencia es que string.math devuelve la subcadena de la cadena de destino que coincide con el patrón, no la posición.

Esta función puede no tener sentido para patrones fijos como "hola". Pero al utilizar el patrón variable, sus características emergen.

La función string.gusb tiene 3 parámetros: cadena de destino, patrón y cadena de reemplazo. Su función es reemplazar todas las apariciones del patrón con la cadena de reemplazo. hay El cuarto parámetro seleccionado puede limitar el número de sustituciones

La función es string.gsub y hay otro resultado, que es el número real de sustituciones. Por ejemplo, el siguiente es un método simple para contar. el número de espacios en una cadena

string.gmatch devuelve una función. A través de esta función, puede recorrer todos los lugares donde aparece el patrón especificado en una cadena.

El patrón "a" representa una secuencia que coincide con uno o más caracteres alfabéticos (es decir, una palabra. Todas las palabras se recorrerán y almacenarán en ella). "Punto" tiene un significado especial en los patrones, por lo que para representar un punto debes escribir "."

Ten en cuenta el uso de clases de caracteres para crear patrones más útiles. La clasificación de personajes es un elemento del patrón. Puede coincidir con cualquier personaje en una suma superior. Por ejemplo, la categoría "d" coincide con cualquier número. Por ejemplo, puede utilizar

"dd/dd/dddd" para buscar fechas en el formato "dd/mm/aaaa"

Las siguientes son todas categorías de caracteres

Las líneas mayúsculas de estas categorías representan sus complementos, por ejemplo "A" representa todos los caracteres no alfabéticos

Dentro del patrón, también hay algunas cadenas llamadas "caracteres mágicos" que tienen características especiales. significados.

Estos caracteres mágicos son

{ } . - * ? [ ] ^ $

Las cadenas sirven como caracteres de escape para estos caracteres mágicos, por ejemplo, "." significa hacer coincidir un punto "". significa hacer coincidir el carácter "" Puede usar "" no solo para caracteres mágicos, sino también para todos los demás caracteres no alfanuméricos. Cuando no esté seguro de si es necesario utilizar un carácter de escape, debe precederlo directamente con un carácter de escape.

Para lua, el patrón es una cadena ordinaria. Y recuerda que sigue las mismas reglas que las cuerdas. Sólo las funciones de modo los interpretarán, en cuyo caso los parámetros tratarán a "" como un carácter de escape.

Al combinar diferentes categorías de caracteres o caracteres individuales dentro de un grupo de corchetes, puedes crear tu propia categoría de caracteres. Esta nueva categoría de caracteres se llama conjunto de caracteres (conjunto de caracteres). Por ejemplo, el juego de caracteres ["w_"] significa letras, números y guiones bajos coincidentes. El juego de caracteres [01] significa hacer coincidir dígitos binarios. El juego de caracteres [[]] significa hacer coincidir el propio corchete. Si necesita contar el número de vocales en un fragmento de texto, puede escribir así

La forma de representar un rango de caracteres en un conjunto de caracteres es escribir el primer carácter y el último carácter de el rango y conectarlos con una línea horizontal, pero esta forma rara vez se usa porque los rangos de caracteres más utilizados ya están predefinidos. Por ejemplo, [0-9] es d

[0-9a-fA-F] es "x". Sin embargo, si necesitas encontrar un número octal, puedes escribir [0-7]. y no [01234567]. Agregar un '^' antes de un conjunto de caracteres puede representar el complemento de este conjunto de caracteres. Por ejemplo, [^0-7] representa todos los caracteres que no son dígitos octales. El patrón [^\n] representa caracteres distintos de las nuevas líneas. Para una clasificación simple, el uso de mayúsculas también puede obtener su complemento, "S" es obviamente mejor que [^s] Respuesta corta

Las partes opcionales repetidas en el patrón también se pueden ignorar mediante modificadores. Lua proporciona cuatro modificadores

" " La ciencia del modificador se asigna a uno o más caracteres de una clasificación de cadena. Siempre obtiene la secuencia más larga que coincide con el patrón. El patrón "a" representa una o más letras, es decir, palabras:

El patrón "d" coincide con una o más matrices (un número entero)

p>

El modificador "*" es similar a " ", pero también acepta 0 apariciones. Un uso típico es unir espacios entre diferentes partes de un patrón. Por ejemplo, para hacer coincidir un par de paréntesis como () o (), puedes usar "(s*)" donde s* puede hacer coincidir 0 con múltiples espacios

Otro ejemplo es usar el patrón "[ _a][_w]*" para hacer coincidir identificadores en Lua. Un identificador es una secuencia que comienza con una letra o guión bajo y seguida de 0 hasta más guiones bajos, letras o números.

El modificador "-", como "*", también se utiliza para hacer coincidir cero o más caracteres. Pero coincidirá con la subcadena más corta. Aunque parece no haber diferencia entre los dos, los efectos son completamente diferentes. Si utiliza "[_a][_w]-" para buscar un identificador, solo encontrará la primera letra, porque "[_w]-" siempre coincide con la cadena vacía. Supongamos que desea buscar comentarios en un programa C, normalmente probará primero con "/*.*/". Luego, dado que ".*" se expandirá tanto como sea posible, el primer "/*" del programa solo será. en comparación con las últimas coincidencias "* /"

Pero si se usa ".-", quedará así

El modificador "?" se usa para hacer coincidir un carácter opcional. Por ejemplo, desea encontrar un número entero en un fragmento de texto y el número entero puede incluir un signo opcional. Luego use el modo "[ -]?d " para realizar esta tarea.

Puede coincidir con números como "-12" "23" "1000" y "[ -]" es una clasificación de caracteres que coincide con los signos ' ' y '-', seguido de '? ' indica que este símbolo es opcional. A diferencia de otros sistemas, los modificadores en Lua solo se pueden usar para una categoría de personaje y no pueden modificar un grupo de categorías. No se puede escribir un patrón que coincida con los trazos opcionales.

Si un patrón comienza con '^', solo coincidirá con el comienzo de la cadena de destino. Si el patrón termina con '$', solo coincidirá con el final de la cadena de destino.

En el patrón, también puedes usar "b" para unir pares de caracteres. Está escrito como "blt; xgt; lt; ygt;" donde lt; xgt y lt; Por ejemplo, el patrón "b()" puede coincidir con una subcadena que comienza con '(' y termina con ')'

s="a (entre paréntesis) línea"

print(string.gsub(s, "d()", "") --gt; a line

Los usos típicos de este modo incluyen "b()" "b[]" "b {}" "blt; gt;"

La función de captura puede extraer contenido que coincida con el patrón de la cadena de destino de acuerdo con un patrón. Al especificar la captura, la parte del patrón que debe capturarse debe ser escrito en Dentro de un par de paréntesis.

El valor entre paréntesis coincide con dos palabras, y el valor fuera del paréntesis primero coincide con el espacio, luego el signo igual y luego el espacio, y la expresión está encerrada por () valor devuelto.