获取表格中所有匹配的字符串

我有一个搜索字符串,类似于“function *()”。 * 是一个通配符。我想用一个列出所有匹配字符串的表格。

例如 如果我使用搜索字符串“function * ()”搜索此字符串

function one()
  print("Hello")
end

local function two()
  print("World")
end

它应返回表格{"function one()","function two()"}。我怎样才能在LUA中实现这一点?

点赞
用户6834680
用户6834680
本地函数 `search` 用于在给定的文本中搜索符合给定模式的字符串,返回符合模式的字符串数组。

local function search(text, searchstring) local result = {} local pattern = searchstring:gsub("*", "\0"):gsub("%p", "%%%0"):gsub("%z", ".-") for w in text:gmatch(pattern) do table.insert(result, w) end return result end


使用方法:

-- 给定的文本 local text = [[ function one() print("Hello") end

local function two() print("World") end ]]

-- 搜索模式 local searchstring = "function *()"

-- 搜索结果 local result = search(text, searchstring) --> {"function one()", "function two()"}

```

2017-10-19 16:36:41