Согласно the docs, все операторы повторения Lua работают только на отдельных персонажей, так что вы можете соответствоватьLua: сопоставление шаблонов с несколькими символами с? Оператор повторения
string.match('123', '1?(%d+)') -- returns 23
, но не может соответствовать несколько символьных строк:
string.match('123', '(12)?(%d+)') -- want this to return 3
документы говорят, что это возможно через «несколько шаблонов и пользовательская логика», но я не знаю, что это значит. Может ли кто-нибудь предложить способ сопоставить шаблон с указанным выше? В принципе, 12
должно быть необязательно сопоставлено все или ничего и возвращает оставшуюся часть строки цифр.
Вы также можете попробовать LPeg или lrexlib – hjpotter92