如何替换中间可能有空格的子字符串

时间:2012-10-19 06:09:40

标签: string lua design-patterns string-matching

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

例如,

我有一个字符串

local str = "Hel lo World"

如何从此字符串中替换“Hello”?

我需要使用模式吗?

编辑

我想出了类似的东西

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

这是最佳的吗?

2 个答案:

答案 0 :(得分:2)

您可以编写这样的模式生成器:

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')

答案 1 :(得分:0)

创建一个字母/空格

的掩码

剥离空格

匹配/替换文字

撤消字母/空格掩码

如果你想创造一个能够做到这一点的功能。