-

本WIKI编辑权限开放,欢迎收藏起来防止迷路,也希望有爱的小伙伴和我们一起编辑哟~ 编辑帮助:目录BWIKI反馈留言板

请假条:下周WIKI数据暂停更新3天(19日-21日),22日恢复更新。理由:站长要去考试,可能没人更新数据。望周知!
请选择语言:

版本250722.2
全站通知:

模块:String

来自赛尔号WIKI_BWIKI_哔哩哔哩
跳到导航 跳到搜索

此模块的文档可以在模块:String/doc创建

local p = {}

-- 把原始分隔符(空格或任意空白)统一替换成用户指定的单字符
-- 用法  {{#invoke:String|replace|源字符串|模式|替换|次数|plain}}
-- 次数默认 nil(全部替换),plain 默认 true(不按正则处理)
function p.replace(frame)
    local s      = frame.args[1] or ''
    local pattern = frame.args[2] or ''
    local repl   = frame.args[3] or ''
    local n      = tonumber(frame.args[4]) or nil
    local plain  = (frame.args[5] or 'true') ~= 'false'   -- 默认当纯文本

    -- 如果模式是 %s 就走正则,否则按用户给的 plain 开关
    if pattern == '%s' then
        plain = false
    end

    local result
    if plain then
        result = mw.ustring.gsub(s, pattern:gsub('([%.%+%-%*%?%[%]%^%$%(%)%%])', '%%%1'), repl, n)
    else
        result = mw.ustring.gsub(s, pattern, repl, n)
    end
    return result
end

-- 其余函数先留空,占坑以后补
function p.rep()    return '' end
function p.escapePattern() return '' end

return p