[luatex] [OT] The consumption of an input string.

Paul Isambert zappathustra at free.fr
Mon Jun 17 16:54:47 CEST 2013


luigi scarso <luigi.scarso at gmail.com> a écrit:
> On Mon, Jun 17, 2013 at 2:43 PM, Paul Isambert <zappathustra at free.fr> wrote:
> 
> > Hello all,
> >
> > This is not really a LuaTeX question, but I ask it here anyway since a
> > lot of knowledgeable people read this list.
> >
> > I’ve been surprised to discover that
> >
> >     print(string.gsub('abc', '.*', '(%0)'))
> >
> > returns
> >
> >     (abc)()
> >
> > (similarly, “string.gmatch('abc', '.*')” returns two matches). I’d
> > expect
> >
> >     (abc)
> >
> >
> 
> myabe this can help
> 
> > print(string.gsub("abc","%s*","(%0)"))
> ()a()b()c()    4
> 
> > print(string.gsub("abc","%S*","(%0)"))
> (abc)()    2
> 
> """
> A pattern item can be
> 
> a single character class followed by '*', which matches 0 or more
> repetitions of characters in the class. These repetition items will always
> match the longest possible sequence;
> """

Thank you Luigi, but “*” has the same definition in other languages,
including those where there is no match on a final empty string.

As for your first example, all languages behave the same as far as I
can tell, as expected.

Best,
Paul



More information about the luatex mailing list