zysyl
@zysyl

Как в lua правильно использовать регекспы и скобки?

Почему не работает вот такая конструкция?

local querycreate = "create user 'dddqwd123_dwqd'@'localhost'"
local create, usercreate, username, userhost = querycreate:match("^(%w+)%s+(%w+)%s+\'(%w)\'@\'(%w)\'$")
print(string.format("query: %s", querycreate))
print(string.format(" var create = %s \n var usercreate = %s \n var username = %s \n var userhost = %s", create, usercreate, username, userhost))


При выполнении получаю:

query: create user 'dddqwd123_dwqd'@'localhost'
var create = nil
var usercreate = nil
var username = nil
var userhost = nil

Если регексп изменить на ("^(%w+)%s+(%w+)%s+") то получаю:

var create = create
var usercreate = user
var username = nil
var userhost = nil

А если убрать в переменной querycreate скобки типа "create user dddqwd123_dwqd @ localhost", и регексп немного изменить ^(%w+)%s+(%w+)%s+(%w+) @ (%w+)$, то вывод получаю такой, как мне нужен.
  • Вопрос задан
  • 2859 просмотров
Решения вопроса 2
avalak
@avalak
querycreate:match("^(%w+)%s+(%w+)%s+'([%w_]+)'@'(%w+)'$")

тыц тыц
Ответ написан
Комментировать
zysyl
@zysyl Автор вопроса
мда тупанул. Отвечу сам ^(%w+)%s+(%w+)%s+\'(%w+)\'@\'(%w+)\' плюсы потерял
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы