2011-07-14 34 views
5

Im chỉ tự hỏi nếu có thể đặt biến trong một mẫu khớp trong Lua. Giống như một cái gì đó tương tự như sau:biến lua trong mẫu khớp

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

Lý do tôi cần làm điều này là do biến "var" sẽ thay đổi định kỳ. (nó sẽ được lặp lại)

Cổ vũ trước

Trả lời

9

Lua không xử lý nội suy chuỗi bên trong dấu ngoặc kép. Thay vào đó, bạn sẽ cần phải nối các phần với var dưới dạng tham chiếu var và phần còn lại dưới dạng chuỗi trích dẫn.

"("..var..")%s(a%+)" bắt đầu với một "(" như một chuỗi chữ, concatenates biến, sau đó kết thúc ra khỏi phần còn lại của chuỗi bằng một chuỗi chữ.

5

Sử dụng "("..var..")%s(a%+)" thay thế.

1

tôi cần điều tương tự tôi nghĩ rằng, một biến trong một mô hình Tôi đã đăng giải pháp của mình trong trường hợp nó giúp ai đó, không tìm thấy bất cứ điều gì khác trên mạng như nó. tên: tel) và muốn tìm kiếm theo tên trong tệp và có tên và số điện thoại làm câu trả lời.

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