Как сделать сопоставление с образцом в строках? - PullRequest
2 голосов
/ 24 марта 2011

Есть ли способ перебрать строку через запятую, а затем что-то сделать с совпадениями? Пока что у меня есть:

for a in string.gmatch("this, is, a commaseparated, string", "(.-)[,]") do
  print (a)
end

Проблема в том, что последняя запись в таблице не найдена. В C можно сопоставить с NULL, чтобы проверить, находитесь ли вы в конце строки. Есть ли что-то похожее в Lua?

1 Ответ

4 голосов
/ 24 марта 2011

Попробуйте это:

for a in string.gmatch("this, is, a commaseparated, string", "([^,]+),?") do
    print (a)
end

Шаблон регулярного выражения ([^,]+),? захватывает один или несколько не запятых символов, за которыми необязательно следует запятая.

...