Według the docs, wszyscy operatorzy powtarzania Lua działać tylko na pojedynczych znaków, dzięki czemu można dopasowaćLua: wzór pasujący do wielu znaków za pomocą? Operator powtórzenie
string.match('123', '1?(%d+)') -- returns 23
ale nie może się równać ciągi wieloznakowych:
string.match('123', '(12)?(%d+)') -- want this to return 3
Docs powiedzieć, że jest to możliwe dzięki "wiele wzorów i niestandardowa logika", ale nie wiem, co to oznacza. Czy ktoś może zaproponować sposób dopasowania wzoru powyżej? Zasadniczo opcja 12
powinna być opcjonalnie dopasowana all-or-nothing i zwracać pozostałą część ciągu cyfr.
Możesz także wypróbować LPeg lub lrexlib – hjpotter92