Задать вопрос
Driver86
@Driver86
Немодератор toster.ru

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

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

Возвращает nil
В мануалах про это что-то ни слова.
  • Вопрос задан
  • 931 просмотр
Подписаться 1 Простой 1 комментарий
Решения вопроса 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)%.")
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
Wanted. Санкт-Петербург
До 450 000 ₽
ПРОДИС.НДТ Малаховка, пгт
от 70 000 ₽
Wanted. Санкт-Петербург
До 120 000 ₽