模块:Split

    来自中国珂学院
    MEmori(讨论 | 贡献)2020年3月3日 (二) 21:13的版本 (创建页面,内容为“local module = {} local getArgs = require('Module:Arguments').getArgs function module._main(args, frame) local str = args['str'] or '' local ptn = args['ptn'] or…”)
    (差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)

    可在模块:Split/doc创建此模块的帮助文档

    local module = {}
    
    local getArgs = require('Module:Arguments').getArgs
    
    function module._main(args, frame)
    	local str = args['str'] or ''
    	local ptn = args['ptn'] or ''
    	ptn = mw.text.decode(mw.text.unstripNoWiki(ptn))
    	local name = args['name'] or 'foo'
    	if args['reg'] ~= 'on' then
    		ptn = mw.ustring.gsub(ptn, '([%%%(%)%.%+%-%*%?%[%]%^%$])', '%%%1')
    	end
    	local datas = mw.text.split(str, ptn)
    	for i, v in ipairs(datas) do
    		v = mw.ustring.gsub(v, '^%s*(.+)%s*$', '%1')
    		frame:callParserFunction( '#vardefine', name..i,  v)
    	end
    	frame:callParserFunction( '#vardefine', name..'.count',  #datas)
    end
    
    function module.main(frame)
    	local args = getArgs(frame)
    	return module._main(args, frame)
    end
    
    
    return module