2015-11-12 5 views
3

У меня есть довольно простой вопрос, но мой Google исследование не помогло .. Я довольно новый для Lua, так ..Lua string.find правильный формат?

У меня есть строка «XXXX_YYYYYY_zzzzzz» хранится в локальной переменной, и я хочу, чтобы разобрать его и получить 3 новые локальные переменные. Должен ли я использовать string.find?

local str_ = "XXXX_YYYYY_zzzzzz"  
local first_, second_, third_ = strind.find(str_, "^(%w+)_(%w+)_(%w+)$") 

ответ

5

Использование string.match вместо:

local str_ = "XXXX_YYYYY_zzzzzz"  
local first_, second_, third_ = str_:match "^([^_]+)_([^_]+)_([^_]+)$" 

Посмотрите на string library on lua-users wiki.

string.find дополнительно возвращает индексы, в которых находилась/находилась согласованная подстрока. Эти два (начальный и конечный) индексы не полезны вашему делу, поэтому string.match будет лучшим инструментом.

+0

Вместо '% w +' вы можете использовать '.-', Только если поля содержат знаки препинания. – lhf

+0

@lhf Лучше я буду с '[^ _]'. Во всяком случае, эти спекуляции будут зависеть от большего количества вклада со стороны OP. – hjpotter92

 Смежные вопросы

  • Нет связанных вопросов^_^