Skip to content

Instantly share code, notes, and snippets.

@pa001024
Created June 28, 2013 05:43
Show Gist options
  • Select an option

  • Save pa001024/5882704 to your computer and use it in GitHub Desktop.

Select an option

Save pa001024/5882704 to your computer and use it in GitHub Desktop.
萌百过滤器
package main
import (
"fmt"
"regexp"
)
const (
TESTDATA = `{{不完整}}
{{人物信息
|image=吉川千夏 .jpg
|本名=吉川 ちなつ(よしかわ ちなつ)
|别号=
|生日=11月6日
|血型=AB
|星座=天蝎座
|年龄=13岁
|身高=149
|瞳色=蓝
|发色=粉
|声优=大久保瑠美
|萌点=[[双马尾]]、[[腹黑]]、[[百合]]
|出身地区=日本
|活动范围=七森中学
|所属团体=[[娱乐部]]
|相关人士=社團成員:[[赤座灯里]]、[[岁纳京子]]、[[船见结衣]]
}}
'''吉川千夏'''是漫画《[[摇曳百合]]》及其衍生的动画、广播剧、游戏等作品的登场角色。
==資料==
*身高:149公分
*生日:11月6日
*血型:AB型
*外觀:留著粉紅色前有覆額齊瀏海之中長髮,後面留長的部份通常綁起來、瞳孔是蓝色的
*興趣:喜欢船見結衣
*動畫版聲優:大久保瑠美
==解說==
千夏與燈里同年,故事開始時年紀13歲,本來千夏打算加入茶道社,但卻因因緣際會,而成了[[娛樂部]]的社員之一。
千夏[[腹黑|滿腹壞水]],常常謀劃著各種不可告人的事。由於外型像小魔女米拉庫之故,因此[[岁纳京子|京子]]很喜歡她,但千夏覺得京子很煩人;另外,千夏入部後不久,便愛上了結衣,並將結衣視為自己的白馬王子。
艺术天分意外地“惊人”,所有艺术品<s>具有类似毕加索的画风</s>但是有着严重的黑暗色彩,几乎需要打马赛克,灯里多半看完直接击倒(硬直,反白等),只有[[姐姐]][[吉川朋子|朋子]]才会给出优秀评价<s>([[奇葩]]的[[妹妹]]总有奇葩的姐姐/哥哥)</s>。此外,按摩技术同样惊人,只有姐姐才会说享受,而灯里就受尽了苦头(整个人憔悴了)。<s>[[赤座灯里|灯里]]是千夏的专用被虐者,被抢初吻,吓死,致残,但灯里还是无怨无悔,果然是好孩子,圣母般的存在</s>
儘管千夏覺得京子很煩,但有時還是會答應京子的要求,扮成小魔女米拉庫,但千夏卻因比的動作怪異之故,而使得許多小朋友心中的米拉庫形象破滅,像結衣的妹妹真理就曾因此下評語道:「人生真命苦」
千夏的頭髮綁起來時,兩旁的馬尾會將球之類的東西給吸入,頭髮解開或千夏自己撥弄時,吸入的東西才會掉出。
動畫版第二季最後一集娛樂部與學生會合演的戲劇中曾擔任「腹黑妖精」的角色。
{{摇曳百合}}
== 外部链接 ==
[[分类:日本萌娘]][[分类:摇曳百合]]
[[分类:妹妹]][[分类:腹黑]][[分类:粉发]][[分类:双马尾]]`
)
var (
reg_pre = regexp.MustCompile(
`^[\s\S]+?\s== ?.+ ?==\n|` + // 去除第一个区块前的所有内容 替换为空 如果没有任何区块则不会替换
`{{[\s\S]+?}}|` + // 去除所有{{}}标签
`\[\[(?:File|分类):[\s\S]+?\]\]|` + // 提取并替换所有WIKI标签(提取图片和分类)
`\[\[([^|\s]+?)\]\]|` + // 替换[[明文|词条名]]词条链接为明文 即$1
`\[\[[\s\S]+?\]\]|` + // 替换[[明文]]词条链接为明文
`'''(.+?)'''|` + // 替换粗体为明文 即$2
`<s>.+?</s>|` + // 去除所有<s></s>标签
`<\w+>(.+?)</\w+>` + // 替换所有HTML标签为明文 即$3
``)
reg_content = regexp.MustCompile(
`(?:\n|^).{1,12}[::].+|` + // 去除说明体文字 如 姓名: xxx `\n(?:本名|姓名|身高|机体|声优|种别|种类|萌点|年龄)[::].+` +
`== (?:基本信息|登场作品) ==[\s\S]+?(==)|` + // 去除基本信息和登场作品区块
`===? ?(.+?) ?===?|` + // 替换小标题为明文 即$1
`\* ?|` + // 去除列表
`<[\w "%%=/\-:]+?>` + // 去除HTML标签如<br /><references />
``)
reg_final = regexp.MustCompile(
`^\s+|` + // 去除开头空白
`(\n)\n+|` + // 去除连续两个以上的换行符
`[^\S\n]\s+` + // 去除两个以上的空白符 行文中分词的单个空格不会被替换 中文空格不会被替换
``)
// {{[\s\S]+?}}|\[\[[\s\S]+?\]\]|'''(.+?)'''|== (.+?) ==|<references />|\s+
)
func /*(this *FilterMoegirlwiki)*/ Process(src string) (dst string) {
dst = reg_final.ReplaceAllString(reg_content.ReplaceAllString(reg_pre.ReplaceAllString(src, "$1$2$3"), "$1"), "$1")
ds := []rune(dst)
if len(ds) > 100 {
//dst = string(ds[0:100]) + "..."
}
return dst
}
func main() {
//fmt.Println()
s := Process(TESTDATA)
fmt.Println(s)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment