2011-07-14 9 views
5

Me pregunto si es posible poner una variable en una coincidencia de patrón en Lua. Como algo similar a lo siguiente:lua variable en coincidencia de patrón

var = "hello" 
pattern = string.match(datasource, "(var)%s(a%+)") 

La razón por la que necesito hacer esto se debe a que la variable "var" cambiará periódicamente. (Que será en un bucle)

Saludos de antelación

Respuesta

9

Lua no maneja la interpolación de cadenas dentro de las comillas. En su lugar, deberá concatenar las partes con la var como una referencia var y el resto como cadenas de comillas.

"("..var..")%s(a%+)" comienza con una "(" como una cadena literal, concatena la variable, a continuación, remata el resto de la cadena con una cadena literal.

5

Uso "("..var..")%s(a%+)" lugar.

1

que necesitan lo mismo que yo creo, una variable en un patrón coincidir, pero la solución anterior no funcionó para mí. Estoy publicando mi solución en caso de que ayude a alguien, no encontró nada más en la red.

He leído un archivo ':' delimitado (nombre: tel) y desea buscar por nombre en el archivo y tener el nombre y número de teléfono como respuesta.

local FileToSearch = h:read'*a' -- Read all the file 
var = io.read() -- ask the name 
string.gmatch(FileToSearch, ''..var..': '..'%d+') -- search for name, concatenate with number 
Cuestiones relacionadas