Driver86
@Driver86
Немодератор toster.ru

Как в lua указать кол-во символов в регулярном выражении?

local string = "qw.erty"
return string:match("([a-z]{2})%.")

Возвращает nil
В мануалах про это что-то ни слова.
  • Вопрос задан
  • 839 просмотров
Решения вопроса 1
dollar
@dollar Куратор тега Lua
Делай добро и бросай его в воду.
Для начала, лучше не использовать слово string для имени переменной, т.к. это целая библиотека для работы со строками. Вы перекрываете к ней доступ.

В Lua нет полноценных регулярных выражений, потому что Lua задумывался как максимально лёгкий язык. Вместо этого используется т.н. "соответствие шаблону". Так что {2} не работает. Просто в большинстве случаев хватает модификаторов + - * ?

В вашем случае подойдёт:
local str = "qw.erty"
return str:match("([a-z][a-z])%.")

Или даже:
local str = "qw.erty"
return str:match("(%l%l)%.")
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы