模块:Split

来自理想城计划
Gjcloak留言 | 贡献2024年6月18日 (二) 14:44的版本 (创建页面,内容为“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*$…”)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)

可在模块: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