Lua模式替换大写字母

我需要一个特殊的 Lua 模式,可以将字符串中的所有大写字母替换为空格和相应的小写字母;

TestStringOne => test string one
this isA TestString => this is a test string

可以实现吗?

点赞
用户1009479
用户1009479

假设只使用 ASCII 码,以下代码可正常工作:

function lowercase(str)
  return (str:gsub("%u", function(c) return ' ' .. c:lower() end))
end

print(lowercase("TestStringOne"))
print(lowercase("this isA TestString"))
2015-04-11 04:51:13
用户3735873
用户3735873
function my(s)
  s = s:gsub('(%S)(%u)', '%1 %2'):lower()
  return s
end

print(my('TestStringOne'))              -->test string one
print(my('this isA TestString'))        -->this is a test string
function my(s)
  s = s:gsub('(%S)(%u)', '%1 %2'):lower()
  return s
end

print(my('TestStringOne'))              -->test string one
print(my('this isA TestString'))        -->this is a test string

将下面翻译成中文并且保留原本的 markdown 格式。

这是一个 Lua 函数,名为 my(s),接收一个字符串参数 s。该函数将传入的字符串 s 中的驼峰式字符串分割成多个单词,并转换为小写字母。该函数使用 Lua 中的 gsub 函数,实现替换字符串操作。函数最终返回修改后的字符串。

示例代码中,my 函数被调用两次,分别传入不同的参数。分别输出转换后的结果,以注释方式展示在代码中。

2015-04-11 06:01:26