在Lua中使用^和gsub

时间:2014-04-06 11:38:12

标签: string lua gsub lua-patterns

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

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

1 个答案:

答案 0 :(得分:2)

    模式开头的
  1. ^是“字符串开头”的锚点,即"^%a"仅匹配"%a"(字母)在字符串的开头。

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

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