知道字符串的长度,找到字符串的子字符串

时间:2015-03-29 01:48:34

标签: string lua

我有一个字符串x:x = "{abc}{def}{ghi}" 我需要在第二个{和第二个}之间打印字符串,在本例中为def。如何在不知道字符串长度的情况下执行此操作?例如,字符串x也可以是{abcde}{fghij}{klmno}"

3 个答案:

答案 0 :(得分:3)

这是模式匹配很有用的地方:

local x = "{abc}{def}{ghi}"
local result = x:match(".-{.-}.-{(.-)}")
print(result)

.-匹配零个或多个字符,非贪婪。整个模式.-{.-}.-{(.-)}捕获第二个{和第二个}之间的内容。

答案 1 :(得分:2)

另请尝试x:match(".-}{(.-)}"),这更简单。

答案 2 :(得分:2)

我会以不同的方式解决这个问题:

local i, x, result = 1, "{abc}{def}{ghi}"
for w in x:gmatch '{(.-)}' do
  if i == 2 then
    result = w
    break
  else
    i = i + 1
  end
end
print( result )