我正在尝试计算“--”在字符串中出现的次数。
因此,例如,它在这里出现两次 'a --b --c'
我尝试了以下方法,但它给了我 4 而不是 2,知道为什么吗?
argv='a --b --c'
count = 0
for i in string.gfind(argv, " --") do
count = count + 1
end
print(count)
我正在尝试计算“--”在字符串中出现的次数。
因此,例如,它在这里出现两次 'a --b --c'
我尝试了以下方法,但它给了我 4 而不是 2,知道为什么吗?
argv='a --b --c'
count = 0
for i in string.gfind(argv, " --") do
count = count + 1
end
print(count)
您实际上可以使用以下方法作为单线执行此操作string.gsub
:
local _, count = string.gsub(argv, " %-%-", "")
print(count)
无需循环!
不推荐用于大输入,因为该函数将处理后的输入返回给_
变量,并将保留在内存中,直到变量被销毁。
根据Mike Corcoran的响应和WD40的优化建议,此片段可能会有所帮助
function count(base, pattern)
return select(2, string.gsub(base, pattern, ""))
end
print(count('Hello World', 'l'))
该-
字符在模式中具有特殊含义,用于非贪婪重复。
你需要逃避它,即使用模式" %-%-"
。