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

问题描述

我有一个函数可以将字符串的第一个字母变成大写。

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

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

HelloWorld ----> 你好世界

你知道 Lua 有什么解决方案吗?

解决方法

str:gsub("(%l)(%u)","%1 %2") 返回一个字符串,该字符串在 str 中的任何小写字母对之间带有一个空格。

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

,
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"))