Returns a copy of s in which all (or the first n, if given) occurrences of
the pattern (see ยง6.4.1) have been replaced by a replacement string
specified by repl, which can be a string, a table, or a function. gsub also
returns, as its second value, the total number of matches that occurred.
The name gsub comes from Global SUBstitution.
If repl is a string, then its value is used for replacement. The character
% works as an escape character: any sequence in repl of the form %d, with d
between 1 and 9, stands for the value of the d-th captured substring. The
sequence %0 stands for the whole match. The sequence %% stands for a single
%.
If repl is a table, then the table is queried for every match, using the
first capture as the key.
If repl is a function, then this function is called every time a match
occurs, with all captured substrings passed as arguments, in order.
In any case, if the pattern specifies no captures, then it behaves as if
the whole pattern was inside a capture.
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).
Returns a copy of s in which all (or the first n, if given) occurrences of the pattern (see ยง6.4.1) have been replaced by a replacement string specified by repl, which can be a string, a table, or a function. gsub also returns, as its second value, the total number of matches that occurred. The name gsub comes from Global SUBstitution.
If repl is a string, then its value is used for replacement. The character % works as an escape character: any sequence in repl of the form %d, with d between 1 and 9, stands for the value of the d-th captured substring. The sequence %0 stands for the whole match. The sequence %% stands for a single %.
If repl is a table, then the table is queried for every match, using the first capture as the key.
If repl is a function, then this function is called every time a match occurs, with all captured substrings passed as arguments, in order.
In any case, if the pattern specifies no captures, then it behaves as if the whole pattern was inside a capture.
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).