Difference between revisions of "String.gsub"
| m (formatting) | |||
| Line 1: | Line 1: | ||
| __NOTOC__ | __NOTOC__ | ||
| + | |||
| <languages /> | <languages /> | ||
| + | |||
| '''<translate>Available since</translate>:''' Gideros 2011.6<br/> | '''<translate>Available since</translate>:''' Gideros 2011.6<br/> | ||
| '''<translate>Class</translate>:''' [[Special:MyLanguage/string|string]]<br/> | '''<translate>Class</translate>:''' [[Special:MyLanguage/string|string]]<br/> | ||
| + | |||
| === <translate>Description</translate> === | === <translate>Description</translate> === | ||
| − | <translate>Returns a copy of s in which all (or the first n, if given) occurrences of the pattern 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 | + | <translate> | 
| − | + | Returns a copy of s in which all (or the first n, if given) occurrences of the pattern 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. | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| + | * 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 %n, with n between 1 and 9, stands for the value of the n-th captured substring (see below). 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 the pattern specifies no captures, then the whole match is used 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; 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). | ||
| − | |||
| + | Here are some examples:<br/> | ||
| + | ''x = string.gsub("hello world", "(%w+)", "%1 %1") --> x="hello hello world world"''<br/> | ||
| + | ''x = string.gsub("hello world", "%w+", "%0 %0", 1) --> x="hello hello world"''<br/> | ||
| + | ''x = string.gsub("hello world from Lua", "(%w+)%s*(%w+)", "%2 %1") --> x="world hello Lua from"''<br/> | ||
| + | ''x = string.gsub("home = $HOME, user = $USER", "%$(%w+)", os.getenv) --> x="home = /home/roberto, user = roberto"''<br/> | ||
| + | ''x = string.gsub("4%2B5 = $return 4%2B5$", "%$(.-)%$", function (s) return loadstring(s)() end) --> x="4%2B5 = 9"''<br/> | ||
| + | ''local t = {name="lua", version="5.1"}''<br/> | ||
| + | ''x = string.gsub("$name-$version.tar.gz", "%$(%w+)", t) --> x="lua-5.1.tar.gz"''<br/> | ||
| + | </translate> | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| <source lang="lua"> | <source lang="lua"> | ||
| (string) = string.gsub(s,pat,repl,n) | (string) = string.gsub(s,pat,repl,n) | ||
| </source> | </source> | ||
| + | |||
| === <translate>Parameters</translate> === | === <translate>Parameters</translate> === | ||
| − | '''s''': (string) <translate>string where to make replacements</translate> <br/> | + | '''s''': (string) <translate>string where to make replacements</translate><br/> | 
| − | '''pat''': (string) <translate>pattern what to replace</translate> <br/> | + | '''pat''': (string) <translate>pattern what to replace</translate><br/> | 
| − | '''repl''': (varies) <translate>to what to replace</translate> <br/> | + | '''repl''': (varies) <translate>to what to replace</translate><br/> | 
| '''n''': (number) <translate>number of replacements</translate> '''optional'''<br/> | '''n''': (number) <translate>number of replacements</translate> '''optional'''<br/> | ||
| + | |||
| === <translate>Return values</translate> === | === <translate>Return values</translate> === | ||
| '''<translate>Returns</translate>''' (string) <translate>modified string with replacements</translate><br/> | '''<translate>Returns</translate>''' (string) <translate>modified string with replacements</translate><br/> | ||
| + | <br/> | ||
| + | <br/> | ||
Revision as of 01:39, 29 November 2019
Available since: Gideros 2011.6
Class: string
Description
Returns a copy of s in which all (or the first n, if given) occurrences of the pattern 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.
- 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 %n, with n between 1 and 9, stands for the value of the n-th captured substring (see below). 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 the pattern specifies no captures, then the whole match is used 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; 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).
Here are some 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%2B5 = $return 4%2B5$", "%$(.-)%$", function (s) return loadstring(s)() end) --> x="4%2B5 = 9"
local t = {name="lua", version="5.1"}
x = string.gsub("$name-$version.tar.gz", "%$(%w+)", t) --> x="lua-5.1.tar.gz"
(string) = string.gsub(s,pat,repl,n)
Parameters
s: (string) string where to make replacements
pat: (string) pattern what to replace
repl: (varies) to what to replace
n: (number) number of replacements optional
Return values
Returns (string) modified string with replacements
