2011-07-14 15 views
5

Zastanawiam się tylko, czy możliwe jest umieszczenie zmiennej w dopasowaniu wzorca w Lua. Jak coś podobnego do następującego:Zmienna lua w dopasowaniu wzorca

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

Powodem, dla którego muszę to zrobić, jest to, że zmienna "var" zmienia się okresowo. (To będzie w pętli)

Cheers wyprzedzeniem

Odpowiedz

9

Lua nie obsługuje interpolacji ciągów wewnątrz cytatów. Zamiast tego musisz połączyć części z var jako odniesieniem var, a reszta jako stringami cudzysłowu.

"("..var..")%s(a%+)" rozpoczyna się „(” jako ciąg dosłowne, Łączy zmienną, a następnie wykańcza resztę napisu z ciągiem dosłownym.

5

Korzystanie "("..var..")%s(a%+)" zamiast.

1

Musiałem to samo myślę, zmienna we wzorcu mecz, ale powyższe rozwiązanie nie działało dla mnie Zamieszczam moje rozwiązanie, na wypadek, gdyby pomogło komuś, nie znalazłem nic innego w sieci, jak to.

Przeczytałem plik rozdzielany ":" (imię i nazwisko: tel) i chcesz wyszukać według nazwy w pliku i mieć nazwę i numer telefonu jako odpowiedź:

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 
Powiązane problemy