local p = {}
--- 1 2 3 ...
local arabicNumbers = {}
for i = 1, 64 do
arabicNumbers[i] = i
end
local partsOfSeries = {
-- 尤里乌斯·尤克历乌斯的言出必行备忘录、芙蕾德莉卡和佩特拉的女仆小姐Days 等
-- 第一部没有Ⅰ后缀
{ '', 'Ⅱ', 'Ⅲ', 'Ⅳ', 'Ⅴ', 'Ⅵ', 'Ⅶ', 'Ⅷ', 'Ⅸ', 'Ⅹ', 'Ⅺ', 'Ⅻ' },
-- 1卷、1章、1集、1话 等
arabicNumbers,
-- 从零开始的英雄谭、剑鬼战歌 等
{ '一', '二', '三', '四', '五', '六', '七', '八', '九', '十', '终' },
-- 狼之国/弱者该死毋需慈悲、亲竜之国/梅丽的魔兽见闻录、亲竜之国/迷途子搜索记录、金狮子与剑圣 狮子奋迅记 等
{ 'ZERO 亚拉基亚', 'ZERO 文森特', 'ZERO 普莉希拉', '①', '②', '③', '④', '⑤', '⑥', '⑦', '⑧', 'ZERO 九神将', '⑨', '⑩', '⑪', '⑫', '⑬', '⑭', '⑮', '⑯', '⑰', '⑱', '⑲', '⑳' },
-- Ex 系列,无共同前后缀
{ '狮子王所见之梦', '剑鬼恋歌', '剑鬼恋谭', '最优纪行', '绯色姬谭' },
-- Lugunican Papers、Sword Identity、赫炎的剑狼 等
{ '前篇', '中篇', '中篇2', '后篇' },
-- 库珥修大人的伟人传
{ '开幕☆', '序幕 誓言之章☆', '序幕 菲莉丝华丽诞生☆', '序幕 「青」的学习', '外传 侍从不在的日子' },
-- 加菲尔与拉姆、
{ '乖僻别扭的恋爱物语', '乖僻别扭执拗的恋爱物语', '乖僻别扭执拗的纠结恋爱物语', '乖僻别扭执拗的纠结恋爱物语ZERO' },
-- 大精灵帕克的
{ '喵喵好日子', '喵喵喵好日子', '喵喵鬼点子' },
-- 图书管理员碧翠丝的业务日志·
{ '重开', '第二页', '第三页' },
-- 艾米莉娅与拉姆的主从
{ '凹凸', '凹凹凸凸' },
-- 菲鲁特酱
{ '的工作', '的监禁生活', '看见了!', '登台亮相', '收留小混混', '组建愚连队' },
-- 安娜斯塔西娅的
{ '纤弱手腕繁盛记', '搬迁画卷', '发迹纪念日', '卡拉拉基商人道', '最优秀游记' },
-- 艾米莉娅的
{ '王都观光记', '星空教室', '初次约会' },
-- 剑鬼恋谭——
{ '新娘之父篇', '地龙之都,弗兰德斯篇', '蜜月背后篇' },
-- 碧翠丝与蕾姆的
{ '扫除好辛苦', '服侍好辛苦' },
-- 碧翠丝之大家都很
{ '困扰呢', '困扰呢!', '困扰呢!困扰的!' },
-- 普莉希拉
{ '的妾身万岁!余兴篇', '的妾身万岁!酒鬼老爹篇', '大人的妾身万岁!阴谋之影篇', '大人的妾身万岁!宣战布告篇', '大人的妾身万岁!动乱预感篇' },
-- 艾米莉娅生日系列,无共同前后缀
{ '艾米莉娅的 Very Happy Birthday', 'Memory Snow 前日谭/Liar Days', '冰结之绊 前日谭/冰结的日常', 'Happy Diary', 'Two Witches Tea Party', 'Two Witches\' Eventful Journey' },
-- 双子生日系列,无共同前后缀
{ '祝福日Ex 蕾姆的生日派对', '祝福之日Ex 蕾姆琳之日', '隐世村的鬼姐妹,欢迎来到晚会', '隐世村的鬼姐妹。——幸福的噩梦', '隐世村的鬼姐妹 ~鬼的扮角~', '隐世村的鬼姐妹 ~夜想姐妹~', '隐世村的鬼姐妹 ~Pleiades before after~', '隐世村的鬼姐妹 ~祈祷的千纸鹤篇~' },
-- Re0 Visual Complete
{ 'Vol.1 Emilia', 'Vol.2 Ram', 'Vol.3 Rem' },
-- 动画系列,无共同前后缀
{ 'Re:从零开始的前日谭 冰结之绊', 'Re:从零开始的前日谭 隐世村的鬼姐妹', 'Re:从零开始的前日谭 阵营结成秘话', 'Re:从IF开始的异世界生活', 'Another Memory Snow', '冰结之绊 Before Memories', 'Re:从零开始的前日谭 Apocalypse Girls', 'Re:从零开始的前日谭 逝去之日,挚爱随行', 'Re:从零开始反复的异世界生活', 'Another World, Another Episode' },
-- 蕾姆
{ '与昴相遇', '的咖啡拉花', '人生中最美好的日子', '的少女心超复杂' },
-- 拉姆系列,无共同前后缀
{ '拉姆拒绝搭讪记', '与拉姆一起的晚间学习会', '拉姆的姐姐之心很复杂' },
-- 漫画特典系列,无共同前后缀
{ '混混的独狼,菲鲁特酱骚动的日常', 'Re:Zero Visual Complete', '笨拙的二人组', 'Re:从零开始的异世界生活幕后', '菜月·昴华丽的管家生活', '罗兹瓦尔邸女子会(浴场篇)', '罗兹瓦尔邸女子会(更衣间篇)', '思君之决战前夜' },
-- 魔女的
{ '茶会之余', '茶会之余 魔女的条件', '茶会之余 魔女们的反省会', '茶会之余 One Wild Night(前篇)', '茶会之余 One Wild Night(后篇)', '茶会之余 Omega in Wonderland(前篇)', '茶会之余 Omega in Wonderland(中篇)', '茶会之余 Omega in Wonderland(后篇)' },
-- 暂定蕾姆的疑心暗鬼/
{ '魔鬼念佛假慈悲', '铁打的汉子也会病倒', '如虎添翼', '人间自有真情在', '阎王不在小鬼翻天', '人心莫测', '如立奇功', '鬼の目にも涙编' },
-- 杂志版剑鬼恋歌漫画
{
'剑鬼恋歌前传',
'剑鬼恋歌第1话',
'剑鬼恋歌第2话',
'剑鬼恋歌第3话',
'剑鬼恋歌第4话',
'剑鬼恋歌第5话',
'剑鬼恋歌第6话',
'剑鬼恋歌第7话',
'剑鬼恋歌第8话',
'剑鬼恋歌第9话',
'剑鬼恋歌第10话',
'剑鬼恋歌第11话',
'剑鬼恋歌第12话',
'剑鬼恋歌第13话',
'剑鬼恋歌第14话',
'剑鬼恋歌第15话',
'剑鬼恋歌第16话',
'剑鬼恋歌第17话',
'剑鬼恋歌第18话',
'剑鬼恋歌第19话',
'剑鬼恋歌第19-1话',
'剑鬼恋歌第19-2话',
'剑鬼恋歌第20话',
'剑鬼恋歌第21话',
'剑鬼恋歌第22话',
'剑鬼恋歌第23话',
'剑鬼恋歌第24话',
'剑鬼恋歌第25话',
'剑鬼恋歌第26话',
'剑鬼恋歌第27话',
},
}
function p.get(target)
local finalPrefix, finalSuffix, finalParts
for _, parts in ipairs(partsOfSeries) do
for _, part in ipairs(parts) do
local partEscaped = mw.ustring.gsub(part, '%-', '%-')
local pattern = '^(.*)' .. partEscaped .. '(%D*)$'
local prefix, suffix = mw.ustring.match(target, pattern)
if prefix then
finalPrefix = prefix
finalSuffix = suffix
finalParts = parts
end
end
end
assert(finalPrefix and finalSuffix and finalParts)
local series = {}
for _, part in ipairs(finalParts) do
table.insert(series, finalPrefix .. part .. finalSuffix)
end
mw.logObject({ prefix = finalPrefix, suffix = finalSuffix, parts = finalParts, series = series }, 'Series')
return series
end
return p