模块:Regex
此模块的文档可以在模块:Regex/doc创建
local p = {}
local getArgs = require('Module:Arguments').getArgs
local function showError(err)
return '<span class="error">' .. tostring(err) .. '</span>'
end
local function performMatch(text, pattern)
local result = text:match(pattern)
if result == nil then
error("No match found")
end
return result
end
local function performReplace(text, pattern, use)
local result = text:gsub(pattern, use)
if result == text then
error("No use occurred")
end
return result
end
function p.match(frame)
local args = getArgs(frame)
local text = args[1] or ''
local pattern = args[2] or ''
if not text or not pattern then
return showError("警告:文字或正则表达式缺失。")
end
local result
local status, err = pcall(function()
result = performMatch(text, pattern)
end)
if status then
return result
else
return showError(err)
end
end
function p.replace(frame)
local args = getArgs(frame)
local text = args[1] or ''
local pattern = args[2] or ''
local use = args[3] or ''
if not text or not pattern or not use then
return showError("文字、正则表达式或者使用函数错误。")
end
local result
local status, err = pcall(function()
result = performReplace(text, pattern, use)
end)
if status then
return result
else
return showError(err)
end
end
return p