如何在 Lua 中在小写字母和大写字母之间添加空格

我有一个函数可以将字符串的第一个字母转换为大写。

function firstToUpper(str)
   return string.gsub(" "..str, "%W%l", string.upper):sub(2)
end

现在我需要一个函数来在字符串中添加小写字母和大写字母之间的空格,例如:

HelloWorld ----> Hello World

你知道如何在 Lua 中解决吗?

点赞
用户16076996
用户16076996
local function spaceOut(str)
     local new = str
     repeat
         local start,finish = new:find("%l%u")
         new = new:gsub("%l%u",new:sub(start,start).." "..new:sub(finish,finish),1)
     until new:find("%l%u") == nil
     return new
end

print(spaceOut("ThisIsMyMethodForSpacingWordsOut"))
local function spaceOut(str)
     local new = str
     repeat
         local start,finish = new:find("%l%u")
         new = new:gsub("%l%u",new:sub(start,start).." "..new:sub(finish,finish),1)
     until new:find("%l%u") == nil
     return new
end

print(spaceOut("ThisIsMyMethodForSpacingWordsOut"))
2021-05-30 14:22:25
用户2858170
用户2858170

str:gsub("(%l)(%u)", "%1 %2") 返回一个字符串,其中 str 中任何小写字母和大写字母的组合都以空格分隔。

请阅读 https://www.lua.org/manual/5.4/manual.html#pdf-string.gsub

2021-05-30 14:37:45