Module:User:kc kennylau/sandbox

From Wiktionary, the free dictionary
Jump to navigation Jump to search

㥨㬊㿎㠑㠑㖃㺌㺌㴴㚘㔋㟞㮯㺒㟛㻒㧳㣅㕮㲢㵿㖥㜇㔥㕆㱱㦓㔆㧡㣥㾈㽴㼵㼬㺝㺝㹾㹂㷆㶘㭋㰶㰮㙄㨧㣤㡒㑿䕇䤏䤔䈙䧘䆏䰫䂽䐃䇑丈䟘佋俔䛞亥䓳俇俟䗃侅侅佼併䨢䓍䎧䍮何体但佀似伹伴伎件䒨䁔䁂䜋俴䉰䕧䛮䟗丅丄䶙䈚䀊䵤䲊䴺䴹䴷䵦䅜並䦘䳎䕆䲒仳䯗䩙䏖䪻䙼䊆䫟䑯䭸䭴仕䫴䀕䀏仗䪔䩥䩉䊤䧰䧞䧎䥯䤻䈠下䣀䰼上䟅䍌佇䝒䚦䚠䘀䗁䊓䑗䒈䅃䏽冋噤尰僒僎壏受卷囤墠匯姼幌婸兆啗倖偫嘾凚姛在傂嵀厚妓巳倍咎啖喊彊坉啙培卝嶼哯儉后婞動兕僩垕偡僐埲偩婢嵣徥徥徛徎後很待垷剡峙弟弜弅廌廌庳勥庤圈圈序庉幸廆單墳帍市圮巨巉嶰嶞嶘嶃嵈崵像峴岵善寋咀宁孱坋嬥嚵嫷勨土嫢嫢媞媞婧婦婟婄娣娗僤坐姒妌倱奘奉夰夥夥嵌夏壽士墮倃墡墅強廈堟吭埍嶑垛垗唪唪唫噉倓吮吮否厏嵁滬愓杼杼揗慓殄斷杏晛晃抯怚敘挏撖楗涇棒揆憜溾惢拒滏抒抒樹愀憪戸挺怙栚昊扮槧槧攺涬摶是拕泫泂旱悌歫濫濜濜殑棍澹澩澥澣澒澋潬扁扁潒潒漸漵滰滍滉滈朕戽湫湛掉湀渾恀減混戺淡淊撼憺涵涘涏昦浩柁浣戶洿掍洔洍捍泤沮沌沌沆汫汞汜扂櫎氏撰撰殍殍殆歭拐歂欿惔棵檻橨橡橝橌昈怠榥楯柱槎憤梐惰楩楛楑棸棧棧棓摽梡梃桶抱杝杜杖旐晥恃扈揄晧歜昄挑攩暭沱拌技犃癠綄粔緈炯磰獬紿犯獖狣皛眹焜瀢甚眎琲穽眝爸瑒紓皖町睆瑑牝牝猙痱硍灝猵睍硐爹矲羠羜罷罷竢缿繵稻緷緩緞緒祜父綬綤絯睅瓉紹紵瀺紖皁灺紂盾盾粗盡簿簟簜簄篰篆範箘箉炬笵笲笨猈笆竫竪竝竚窶窞窘窕稞秿秲秬禶禫禍祳祀社煇痔玤禩睴睜睔眮眡盪皝皔瘣瘇璹痞痙罪畤畤璗甉瓿琄瘽莛軬范肣荷艇舓脛蜠臏蝜荇苧萒踐蜃聚蔨蔨芧蜓蜓藇萏蟓膘葚薺腎螣螹蠯肚耜轏臼豏薙薙艦萯膻肁莙莕蟹軓蜯菶蜆艑趲迨迥近辯辮菙辨辡辠轞艁蚢輠輠輠訂輚輔軩詪蜑肇芡蟉蔪膹膹訦轒螷踹踶踝跽跱跪菡距跙跓跈詷觛趙贙贉芍負貗莞豸豸象豎蚡腨跁譚譔臔虡舐膞芐諟諞諞諓藨腐誩誔觟誂詒詑詎誕解觕視襱襢襡蚌襐脤褫菩菩褆褆裋蕩被蓓袓袒袑舵袉衟蟺蟦蜭蜎蚥虥菌菌蘳莟荰薃葤蔀蕈苣譱莩舅鄟鄯饌頜鄗阜陛鑳驔遯鱓鎬醰雋鉏鏨鏨雇靯釜陮駏野酮項魬駴邅陊陊雉骯黊遁齨隽鱒重鍵鍵鯫阱鄹鄹郈鉅錡齟髀鈶鼸鼢鯶鉉錞鋞麔麆騃遞道部部鴻陫鱭鱝鱌鰧鰝鰀鯇魵鮩鮩鮦鮦鮑顈鬴造鬌駘酤髧髕顠骲鋠鄠駭鰾駣駣駔鮡限餞飯顄顩顥頷鞙靜靖霆阪鞄鱮阤黮鐻鋌𠂼𠈺𠒅𠐻𠒃𠬪𠊧𠊩𠷂𠳃𠁁𠧞𠂷𠄔𡬲𡞣𡋲𡖿𡜂𡕬𡾰𡷛𡻮𡻡𡂟𡱣𡱏𡭐𡣊𡍨𢻹𢣑𢹰𢅯𢙼𢁦𢝆𢗒𢜽𢇞𢟡𢛃𢾖𢡹𢦚𢓪𢤬𢠽𢨪𢳁𢎘𢃗𣵻𣵹𣐈𣞵𣛱𣜦𣄸𣝒𤬾𤱩𤺻𤕷𤡥𤻶𤷑𤬪𤜣𤜣𤷃𤢍𤙞𥎗𥕌𥁹𥀁𥚁𥾩𥽏𥻇𥳔𥲄𥏳𥌭𥯕𥬲𥫱𥩲𥢑𥥦𥣙𥘰𦧇𦺲𦡴𦸣𦾶𦖍𦇏𦼱𦯪𦰺𦆀𦳤𦶏𦯑𦁆𦭼𦓨𦼫𦊐𦩗𦳖𦺨𧋔𧱛𧗸𧌈𧶲𧴎𧣒𧳋𧇽𧂄𧰽𧦪𧽟𧡪𧡩𧍙𧯦𧇼𨘌𨏊𨽿𨡫𨝀𨖶𨛸𨹺𨸏𨒥𨼬𨪐𨊼𨲭𨱵𨣦𨔝𨛴𨞪𨯝𩿢𩮳𩿇𩾿𩡧𩸄𩷏𩉥𩶆𩇕𩒣𩋦𩶁𩦠𩩯𩻝𩊜𩔊𩒺𪍺𪍶𪃓𪉱𪘪𪊍𪄮


p={}

function p.show(frame)
	local text = {}
	local a = {"003","004","005","006","007","008","009","020","021","022","023","024","025","026","027","028","029","02A","02C"}
	local res = ""
	for _,b in ipairs(a) do
		local c = mw.loadData("Module:zh/data/ltc-pron/"..b)
		for k,v in pairs(c) do
			for _,d in ipairs(v) do
				if mw.ustring.match(d,"[並定澄從邪崇俟禪常船群羣匣]%S+ 上") then
					res = res .. k
				end
			end
		end
	end
	table.insert(text,res)
	return table.concat(text,'\n\n')
end

function p.test_lowercase(fs)
	for _,f in ipairs(fs) do
		local t1 = f("ABC[g]DEÉF")
		local t2 = f("A[E]BC[g]D[h]EF[p]")
		local t3 = f("A[E]BC[g]DEF[p]å^[!]")
		mw.log(t1,t2,t3)
		mw.log("abgdeéf","Ebghep","Ebgdepå!")
	end
	local s = ("ABCDE[e]"):rep(100)
	p.test(fs,s)
end

function p.lowercase0(text)
	return (text .. "A[a]")
		:gsub("([^%[]*)[%z\1-Z\\^-\127\194-\244][\128-\191]*%[([^%]]+)%]",
			function(a,b) return mw.ustring.lower(a)..b end)
		:sub(1,-2)
end

function p.lowercase1(text)
	local replacements = {}
	local i = 1
	local new_text = mw.ustring.gsub(text, "()%[([^%[%]])%]",
		function(position, new)
			replacements[position-i] = new
			i = i + 3
			return ""
		end)
	return mw.ustring.gsub(new_text, "()(.)",
		function(position, char)
			return replacements[position] or mw.ustring.lower(char)
		end)
end

function p.lowercase2(text)
    local replacements = {}
    local offset = 0
    local new_text = text:gsub("()%[([%z\1-Z\\^-\127\194-\244][\128-\191]*)%]",
        function(position, new)
            replacements[position-offset] = new
            offset = offset + #new + 2
            return ""
        end)
    return (new_text:gsub("([%z\1-\127\194-\244][\128-\191]*)()",
        function(char, position)
            return replacements[position] or mw.ustring.lower(char) -- char:lower()
        end))
end

function p.lowercase3(text)
	return text:gsub("([^%[%]]*)([%z\1-Z\\^-\127\194-\244][\128-\191]*)([%[%]]?)",
		function(rest,char,instr)
			if instr == "[" then return mw.ustring.lower(rest) end
			if instr == "]" then return char end
			return mw.ustring.lower(rest .. char)
		end)
end

function p.lowercase4(text)
	return text
		:gsub("^(.+%])(.*)$",
			function(a,b) return a..mw.ustring.lower(b) end)
		:gsub("(.-)[%z\1-Z\\^-\127\194-\244][\128-\191]*%[([^%]]+)%]",
			function(a,b) return mw.ustring.lower(a)..b end)
end

function p.test(fs, x)
	local t = os.time()
	while os.time() < t+1 do end
	t = t + 2
	for i,f in ipairs(fs) do
		local j = 0
		while os.time() < t do f(x) j = j + 1 end
		mw.log(j)
		t = t + 1
	end
end

function p.link1(t)
	t = mw.text.split(t, ' ', true)
	for i=1,#t do
		t[i] = '[[' .. t[i] .. ']]'
	end
	return table.concat(t, ' ')
end

function p.link2(t)
	t = mw.ustring.gsub(t, '%s+', '[[%0]]')
	return t
end

return p