编辑代码



--去除字符串首尾空格
  --^%s*(.-)%s*$
  --"^...$", 表示匹配的是整个字符串。 ^ 表开头, $ 表示结尾。
  --若 ^ $ 单独出现在比的地方,则表示自身
  --%s 与空白字符配对
  --* 表示匹配零个或多个,%s* 匹配尽可能长的串
  --. 与任何字符匹配 .-  匹配尽可能短的串
  --(.-) 中()表示子模式,将匹配到的子串保存起来
  --%1,用%1替换匹配的子串
  --string,gsub返回两个值,一个是匹配的字符串,一个是匹配次数
  --外若有一个括号,表示只返回第一个返回值


--[[
--%w 与任意字母/数字匹配
--一个字符串一个字符串来匹配的
--本例中,只要不属于字母/数字就当做分隔符分开为两个字符串
--"hello1world"为一个字符串,
-- "(%w)(%w+)"为先匹配字符串的第一个字母放在第一个捕获物%1中
--在匹配该字符串中剩下的所有字母放在第二个捕获物%2中
--string.gsub("hello1world", "(%w)(%w+)", "%2") --%2 ello1world  %1 h
--"hello-world"为以-分割的两个字符串,
--用分隔符连接在不同字符串中匹配到的子串放在捕获物中
--%1 h-w %2 ello-orld
x = string.gsub("hello world", "(%w+)", "%1 %1")
print(x);
     --> x="hello hello world world"
]]

--[[]]
function trim(s)
  return string.gsub(s, "^%s*(.)(.-)%s*$","%1-%2") 
end
string1 = "   RU  NOOB      c  "
string2 = trim(string1)
print(string2)
--R-U  NOOB      c