Diese Frage fragt nicht, ob Lua-Muster PCRE sind. Das wurde mehrmals gefragt und die Antwort ist definitiv nein.Können die Lua-Muster eine normale Sprache darstellen?
Stattdessen frage ich, ob Lua-Muster eine Analogie zu regulären Sprachen durch die formale Sprachdefinition haben. Mein Instinkt ist nicht, weil ich nicht in der Lage war, ein Muster für diese reguläre Sprache zu erstellen:
L = {'foo'}* = {'', 'foo', 'foofoo', 'foofoofoo', ...}
All meine Versuche fehlgeschlagen, da Lua die Fähigkeit zu fehlen scheint den Kleene Stern auf Captures zu verwenden:
> print(('foofoo'):find('(foo)*'))
nil
Können Sie zeigen, dass es in Lua kein Muster gibt, das L
bezeichnen kann, und allgemeiner gesagt, kann ein Lua-Muster für jede reguläre Sprache erstellt werden?
Das '% bxy' Muster Artikel ist * nicht * regular:„'% bxy', wo 'X' und 'Y' sind zwei verschiedene Zeichen, wie zum item entspricht Zeichenfolgen, die mit "x" beginnen, mit "y" enden und "x" und "y" ausgeglichen sind. " Siehe https://www.lua.org/manual/5.3/manual.html#6.4.1 – rici
@rici: Guter Punkt. Korrigiert. –