在Lua中使用^和gsub

function title case(theString)
    return (theString:gsub("^%a", string.upper):gsub("%s+%a", string.upper))
end
  1. 我有上述的代码。我想知道上面代码中 ^ 运算符的用法。我知道在集合中,^ 是用来排除 / 否定在集合中后续出现的值,但由于这不是一个集合, ^ 的作用是什么?

  2. 为什么上面的代码中 gsub 被使用了两次?每次都将字母转换成大写字母!请解释上面代码中究竟发生了什么。

点赞
用户1009479
用户1009479
  1. 在模式的开头使用^字符表示锚点“字符串的开头”,即"^%a"只匹配位于字符串开头的"%a"(一个字母)。

  2. 第一个string.gsub()将字符串的第一个字母大写,第二个string.gsub()将其他单词的首字母(紧随一个空格的字母)大写。

    例如,字符串"hello world"经过第一个string.gsub()后变成"Hello world",然后经过第二个string.gsub()变成"Hello World"

2014-04-06 11:47:25