Lua gsub第二个实例

时间:2014-11-14 15:40:36

标签: lua gsub lua-patterns

我正在使用

local mystring = 'Thats a really nice house.'
string.gsub(mystring,"% ", "/",1)

用斜杠替换第一个空格字符。

但是如何只替换第二次出现的空格?

3 个答案:

答案 0 :(得分:4)

您可以在string.gsub中使用函数作为替换值并自行计算匹配项:

local mystring = "Thats a really nice house."
local cnt = 0
print( string.gsub( mystring, " ", function( m )
  cnt = cnt + 1
  if cnt == 2 then
    return "/"
  end
end ) )

答案 1 :(得分:4)

尝试string.gsub(mystring,"(.- .-) ", "%1/",1)

答案 2 :(得分:3)

您可以用其他东西替换第一个实例(假设替换不存在于字符串本身,您可以检查),然后将其替换回来:

print(mystring:gsub("% ", "\1",1):gsub("% ", "/",1):gsub("\1","% ", 1))

打印:Thats a/really nice house.。此外,您不需要使用%转义空格。