3
function title case(theString)  
    return (theString:gsub("^%a", string.upper):gsub("%s+%a", string.upper)) 
end
  1. 我有上面提到的代码。我想知道^上面代码中运算符的用法。我知道^在集合中使用它来排除/否定集合中的后续值,但由于它不是集合,所以^意味着什么?

  2. 为什么gsub在上面的代码中使用了两次?这两次,字母都被转换为大写!请解释上面代码行中到底发生了什么。

4

1 回答 1

2
  1. ^在模式的开头是“字符串的开头”的锚点,即,仅当它位于字符串的开头时才"^%a"匹配(一个字母)。"%a"

  2. 第一个string.gsub()是将字符串中的第一个字母变成大写,第二个string.gsub()是将其他单词(一个跟在空格后面的字母)的第一个字母变成大写。

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

于 2014-04-06T11:47:25.167 回答