79
If repl is a function, then this function is called every time a match occurs, with all captured
substrings passed as arguments, in order; if the pattern specifies no captures, then the whole
match is passed as a sole argument.
If the value returned by the table query or by the function call is a string or a number, then it is
used as the replacement string; otherwise, if it is false or nil, then there is no replacement (that
is, the original match is kept in the string).
Examples:
x =string.gsub("hello world", "(%w+)", "%1 %1")
--> x="hello hello world world"
x =string.gsub("hello world", "%w+", "%0 %0", 1)
--> x="hello hello world"
x =string.gsub("hello world from Lua", "(%w+)%s*(%w+)", "%2 %1")
--> x="world hello Lua from"
x =string.gsub("home = $HOME, user = $USER", "%$(%w+)", os.getenv)
--> x="home = /home/roberto, user = roberto"
x =string.gsub("4+5 = $return 4+5$", "%$(.-)%$", function(s)
returnloadstring(s)()
end)
--> x="4+5 = 9"
local t ={name="lua", version="5.1"}
x =string.gsub("$name-$version.tar.gz", "%$(%w+)", t)
--> x="lua-5.1.tar.gz"
string.len (s)
Receives a string and returns its length. The empty string "" has length 0. Embedded zeros are
counted, so"a\000bc\000" has length 5.
string.lower (s)
Receives a string and returns a copy of this string with all uppercase letters changed to
lowercase. All other characters are left unchanged. The definition of what an uppercase letter is
depends on the current locale.
string.match (s, pattern [, init])
Looks for the first match of pattern in the string s. If it finds one, then match returns the
captures from the pattern; otherwise it returns nil. If pattern specifies no captures, then the
whole match is returned. A third, optional numerical argument init specifies where to start the
search; its default value is 1 and can be negative.
string.rep (s, n)
Returns a string that is the concatenation of n copies of the string s.
string.reverse (s)
Returns a string that is the string s reversed.
string.sub (s, i [, j])
Returns the substring of s that starts at i and continues until j; i and j can be negative. If j is
absent, then it is assumed to be equal to -1 (which is the same as the string length). In