function title case(theString)
return (theString:gsub("^%a", string.upper):gsub("%s+%a", string.upper))
end
我有上面提到的代码。我想知道在上面的代码中使用^
运算符。我知道^
在集合中用于排除/否定集合中的后续值,但由于它不是集合,^
意味着什么?
为什么gsub
在上面的代码中使用了两次?两次,这些字母都被转换为大写字母!请解释上面的代码行中究竟发生了什么。
答案 0 :(得分:2)
^
是“字符串开头”的锚点,即"^%a"
仅匹配"%a"
(字母)在字符串的开头。
第一个string.gsub()
是将字符串中的第一个字母设为大写,第二个string.gsub()
是使其他字的第一个字母(一个字母跟在空格后面)大写。
例如,字符串"hello world"
在第一个"Hello world"
之后变为string.gsub()
,然后在第二个"Hello World"
之后变为string.gsub()
。