【发布时间】:2017-07-18 07:43:56
【问题描述】:
我正在尝试创建一个函数来搜索一些代码以查找搜索词所在的行以及该行的索引。该代码是带有换行符的多行字符串。我正在考虑使用 gmatch 来执行此操作,但我不知道如何。
这是我目前的代码。这很糟糕,但我想不出办法让它变得更好:
local function search( code, term )
local matches = {}
local i = 0
for line in string.gmatch( code, "[^\r\n]+" ) do
i = i + 1
if string.find( line, term, 1, true ) then
table.insert( matches, { line = i, code = line } )
end
end
return matches
end
任何帮助将不胜感激!
【问题讨论】:
-
正确计算空行数:
for line in string.gmatch( code, "([^\r\n]*)\r?\n?" ) do -
为什么你觉得这段代码很糟糕?
-
@lhf 它逐行遍历每一行,只是为了查看其中一行是否有正确的字符串,而不是从整体上看这些行,我觉得它可以,因为它是单个字符串。另外,我加 1 的部分感觉不对。循环时我习惯了k和v。
标签: lua string-matching