Difference between revisions of "String.gsub"

From GiderosMobile
Line 19: Line 19:
 
  Here are some examples:  
 
  Here are some examples:  
  
[[x = string.gsub("hello world", "(%w+)", "%1 %1") --> x="hello hello world world"]]
+
[[Special:MyLanguage/x = string.gsub("hello world", "(%w+)", "%1 %1") --> x="hello hello world world"|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"]]
+
[[Special:MyLanguage/x = string.gsub("hello world", "%w+", "%0 %0", 1) --> x="hello hello 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"]]
+
[[Special:MyLanguage/x = string.gsub("hello world from Lua", "(%w+)%s*(%w+)", "%2 %1") --> x="world hello Lua from"|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)]]
+
[[Special:MyLanguage/x = string.gsub("home = $HOME, user = $USER", "%$(%w+)", os.getenv)|x = string.gsub("home = $HOME, user = $USER", "%$(%w+)", os.getenv)]]
[[--> x="home = /home/roberto, user = roberto"]]
+
[[Special:MyLanguage/--> x="home = /home/roberto, user = roberto"|--> x="home = /home/roberto, user = roberto"]]
 
      
 
      
[[x = string.gsub("4%2B5 = $return 4%2B5$", "%$(.-)%$", function (s) return loadstring(s)() end) --> x="4%2B5 = 9"]]
+
[[Special:MyLanguage/x = string.gsub("4%2B5 = $return 4%2B5$", "%$(.-)%$", function (s) return loadstring(s)() end) --> x="4%2B5 = 9"|x = string.gsub("4%2B5 = $return 4%2B5$", "%$(.-)%$", function (s) return loadstring(s)() end) --> x="4%2B5 = 9"]]
 
<br/>
 
<br/>
[[local t = {name="lua", version="5.1"}]]
+
[[Special:MyLanguage/local t = {name="lua", version="5.1"}|local t = {name="lua", version="5.1"}]]
[[x = string.gsub("$name-$version.tar.gz", "%$(%w+)", t) --> x="lua-5.1.tar.gz"]]</translate>
+
[[Special:MyLanguage/x = string.gsub("$name-$version.tar.gz", "%$(%w+)", t) --> x="lua-5.1.tar.gz"|x = string.gsub("$name-$version.tar.gz", "%$(%w+)", t) --> x="lua-5.1.tar.gz"]]</translate>
 
<source lang="lua">
 
<source lang="lua">
 
(string) = string.gsub(s,pat,repl,n)
 
(string) = string.gsub(s,pat,repl,n)

Revision as of 17:35, 23 August 2018

Available since: Gideros 2011.6

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: 

[[Special:MyLanguage/x = string.gsub("hello world", "(%w+)", "%1 %1") --> x="hello hello world world"|x = string.gsub("hello world", "(%w+)", "%1 %1") --> x="hello hello world world"]]

[[Special:MyLanguage/x = string.gsub("hello world", "%w+", "%0 %0", 1) --> x="hello hello world"|x = string.gsub("hello world", "%w+", "%0 %0", 1) --> x="hello hello world"]]

[[Special:MyLanguage/x = string.gsub("hello world from Lua", "(%w+)%s*(%w+)", "%2 %1") --> x="world hello Lua from"|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) [[Special:MyLanguage/--> x="home = /home/roberto, user = roberto"|--> x="home = /home/roberto, user = roberto"]]

[[Special:MyLanguage/x = string.gsub("4%2B5 = $return 4%2B5$", "%$(.-)%$", function (s) return loadstring(s)() end) --> x="4%2B5 = 9"|x = string.gsub("4%2B5 = $return 4%2B5$", "%$(.-)%$", function (s) return loadstring(s)() end) --> x="4%2B5 = 9"]]
[[Special:MyLanguage/local t = {name="lua", version="5.1"}|local t = {name="lua", version="5.1"}]] [[Special:MyLanguage/x = string.gsub("$name-$version.tar.gz", "%$(%w+)", t) --> x="lua-5.1.tar.gz"|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