如何替换可能含有间隔空格的子字符串。

在 lua 中,我需要检测一个可能包含空格的子字符串。

例如,

我有一个字符串

local str = "Hel lo World"

如何从这个字符串中替换 "Hello"?

我需要使用模式吗?

编辑

我想到了这样的东西

local pattern = "[H][ ]*[e][ ]*[l][ ]*[l][ ]*[o]"
str:gsub(pattern,"text_to_replace")

那是最优的吗?

点赞
用户834230
用户834230

创建一个遮罩,指出字母/空格的位置

去掉空格

匹配/替换文本

撤销字母/空格的遮罩

如果您想要创建一个实现这些操作的函数。

2012-10-19 06:26:15
用户1358661
用户1358661

你可以写一个类似于这样的模式生成器:

local spaced_match = function(s)
    local pattern = ''
    for i=1,#s do
       pattern = pattern..s:sub(i,i)..' *'
    end
    return pattern
end

local h = 'hel lo world'
local newh = h:gsub(spaced_match('hello'),'text_to_replace')
2012-10-19 07:29:14