[luatex] String manipulation in Lua.

Paul Isambert zappathustra at free.fr
Thu Dec 2 21:57:17 CET 2010


Correcting myself:

Le 02/12/2010 20:59, Paul Isambert a écrit :
> I have the following solution:
>
>
> local sub, gsub = string.sub, string.gsub
> function isub (str, pattern, replace, index, num)
>   -- Extract the suffix starting at given index
>   local s1 = sub(str, index)
>   -- Make the replacement on the suffix
>   local s2 = gsub(s1, pattern, replace, num)
>   -- Replace the suffix in the string with it modified version
>   return gsub(str, s1 .. "$", s2)
> end

The solution doesn't even work, because if the suffix (i.e. s1) contains 
a magic character, things might go wrong, since it is used as a pattern 
afterward. For instance the following returns an error about an "invalid 
pattern capture" (the right parenthesis):

isub("abc)abc", "b", "B", 1)

So I'd be very glad if anybody had a solution that works, without 
escaping all magic characters beforehand, and preferably without LPeg 
for the moment.

Best,
Paul


More information about the luatex mailing list