替换字符串中的单词而不替换重复项
replace word in string without replacing duplicates
我想做类似 ('hello i am hello i is'):gsub('hello', 'hola')
的事情,而不是 'hola i am hola i is'
而是 'hello i am hola i is'
.
我不知道如何解决这个问题,因为它可能需要复杂的字符串操作,而在字符串操作方面我只有 4/10。
我想避免的两件事是使用 string.sub
和 for loops
,但如果我需要使用它们,我可以。
请帮我解决我的问题
替换 "hello"
的某个出现的简单方法是
local text = "hello I am hello I am hello"
local count = 0
local replace = 2
print((text:gsub("hello", function()
count = count + 1
if count == replace then
return "hola"
end
end)))
打印hello I am hola I am hello
或者:
print(text:gsub("hello", "hola", 2):gsub("hola", "hello", 1))
因此,您将前 2 个 hello
替换为 hola
,然后将第一个 hola
替换为 hello
。这当然只有在字符串的那部分没有其他 hola
的情况下才有效。
我想做类似 ('hello i am hello i is'):gsub('hello', 'hola')
的事情,而不是 'hola i am hola i is'
而是 'hello i am hola i is'
.
我不知道如何解决这个问题,因为它可能需要复杂的字符串操作,而在字符串操作方面我只有 4/10。
我想避免的两件事是使用 string.sub
和 for loops
,但如果我需要使用它们,我可以。
请帮我解决我的问题
替换 "hello"
的某个出现的简单方法是
local text = "hello I am hello I am hello"
local count = 0
local replace = 2
print((text:gsub("hello", function()
count = count + 1
if count == replace then
return "hola"
end
end)))
打印hello I am hola I am hello
或者:
print(text:gsub("hello", "hola", 2):gsub("hola", "hello", 1))
因此,您将前 2 个 hello
替换为 hola
,然后将第一个 hola
替换为 hello
。这当然只有在字符串的那部分没有其他 hola
的情况下才有效。