关于我那误打误撞学会的正则

1709天前 · 代码 · 5832次阅读

是这样的

一个朋友喜欢看书,尤其是轻小说。以前在轻文轻小说看妹系的国轻。可惜..

iqing

但是有一本之前在轻文的妹系小说他久久无法忘怀,于是历经千辛万苦终于找到了TXT文件。我那个朋友十分注重阅读体验,所以用上了「厚墨」这款阅读器。这本是件好事,因为厚墨确实非常舒服。但是呢,厚墨导入小说的时候要使用正则表达式匹配小说标题。

虽然厚墨自带了一个正则匹配表达式,但是完全没起作用。我朋友作为一个完美主义者,完全接受不了这种奇奇怪怪的目录。所以他便找上了我。

我也是厚墨的用户之一,以前看的书一般用厚墨自带的也可以完美使用了,这到底是何方神圣。怀着这样的心情我打开了小说TXT。第一章第一节的标题是

vol.① 妹妹变得奇怪这件事情绝对没办法接受 chapter 1 这和我的妹妹不一样

这明显完全超出了厚墨自带正则的接受范围huaji_han,没办法只能自己动手了。不对,我明明也不会啊huaji_shang

..

没办法只能硬着头皮边学边搞了。

开始

中午睡前在表哥那里学了半个钟,我的眼睛告诉我我学会了。下午赶紧找个课间试试手。

分析

第一步先分析一下这种标题的组成,看了一下前几章的标题

vol.① 妹妹变得奇怪这件事情绝对没办法接受 chapter 1 这和我的妹妹不一样
vol.① 妹妹变得奇怪这件事情绝对没办法接受 chapter 2 这个展开和我想的不一样
vol.① 妹妹变得奇怪这件事情绝对没办法接受 chapter 3 这件事情比我想象的要复杂
vol.① 妹妹变得奇怪这件事情绝对没办法接受 chapter 4 这就是我的妹妹吧

大概是vol.+符号序号(①)+卷名+chapter+章节序号(1,2,3...)+标题,然后从符号序号开始每个成分之间还要加个空格。了解了组成之后就可以动手了。第一稿,启动!

编写

vol.[①②③④⑤⑥⑦⑧⑨⑩]\s[\u4e00-\u9fa5]+\schapter\s[0-9]+\s[\u4e00-\u9fa5]+

解析一下:

vol.是写死的,不用改所以直接写上去了。然后是卷的符号序号,用一个集合[]把所有可能包起来。空格则是用\s来匹配。接下来是一段章节名,直接上中文匹配[\u4e00-\u9fa5],因为文章标题不可能只有一个字,所以加上个+表示一个或多个。之后的就按部就班地写就完事了。

试试看。

...
vol.① 妹妹变得奇怪这件事情绝对没办法接受 chapter 34 这个任务果然是失败了
vol.① 妹妹变得奇怪这件事情绝对没办法接受 chapter 35 这个礼物算是最后的方法吧
vol.④ 逐渐重叠的麻烦和心意 chapter 1 林静这是闹哪样
vol.④ 逐渐重叠的麻烦和心意 chapter 2 证明自己是个妹控
vol.④ 逐渐重叠的麻烦和心意 chapter 3 姐妹
...
vol.④ 逐渐重叠的麻烦和心意 chapter 47 被耍了
vol.④ 逐渐重叠的麻烦和心意 chapter 48 想要保护她的心意
vol.⑥ 将恐惧击碎的勇气来自羁绊 chapter 2 第一日
vol.⑥ 将恐惧击碎的勇气来自羁绊 chapter 3 第一日
...
vol.⑥ 将恐惧击碎的勇气来自羁绊 chapter 74 决断
vol.⑥ 将恐惧击碎的勇气来自羁绊 chapter 75 决断

前面都还好,不过第二三五七八卷跑到哪里去了??书本身是有到vol.⑧的,莫非中间出了什么猫腻?先看看第二第三卷啥情况。再次打开TXT文档找到出问题的章节。

vol.② 日常的转折点:TG! chapter 1 关于我有点健忘这件事……
vol.③ TG带来的乱七八糟的生活 chapter 2 新的开始和新的麻烦
vol.⑤已经无法抑制的心跳 chapter 1 海边的别墅
vol.⑦ 新生活,新动乱 chapter 1 渐回正轨的日常?【1】
vol.⑧:珍贵必用真心 chapter 2 国王游戏[2]

WTF!?卷名中间出现了中文标点和英文。第五卷中序号和卷名之间没有空格,第八卷则是用“:”代替了那个空格。yinxianyinxianyinxian

只能动手修改了。

符号序号和卷名中间有可能出现的是

  • 空格
  • “:”
  • 啥都没有

而且只会出现一个。那么就用*来解决吧。*在正则里表示出现0个及以上。这里这段正则就可以写成

[\s]*[:]*

然后是卷名中间的英文和符号问题。

会出现的情况有三种:

  • 中文++英文+
  • 英文+中文
  • 中文++中文

因为学术不精,那只能就使用笨方法了。

[A-Z]*[\u4e00-\u9fa5]+[,]*[:]*[A-Z]*[!]*[\u4e00-\u9fa5]*

那么第二稿表达式就是

vol.[①②③④⑤⑥⑦⑧⑨⑩][\s]*[:]*[A-Z]*[\u4e00-\u9fa5]+[,]*[:]*[A-Z]*[!]*[\u4e00-\u9fa5]*\schapter\s[0-9]+\s[\u4e00-\u9fa5]+

再试试。NICE,一个不漏!然而问题还没结束。

vol.⑦ 新生活,新动乱 chapter 35 自己的想法
vol.⑦ 新生活,新动乱 chapter 36 自己的想法
vol.⑦ 新生活,新动乱 chapter 38 自己的想法

为什么会出现重复的??(37不见了是小说TXT本身就没有)马上赶到出事地点。

 vol.⑦ 新生活,新动乱 chapter 38 自己的想法【4】

啊,这也是常见的标题起法呢chaiquanku。所以只用在后面再加上

[【]*[0-9]*[】]*

那么最终表达式就是:

vol.[①②③④⑤⑥⑦⑧⑨⑩][\s]*[:]*[A-Z]*[\u4e00-\u9fa5]+[,]*[:]*[A-Z]*[!]*[\u4e00-\u9fa5]*\schapter\s[0-9]+\s[\u4e00-\u9fa5]+[【]*[0-9]*[】]*

..

完美!

写在后面

这次一共耗时两个课间加午睡前半个小时,但是感觉收益颇丰。就是下午放学后累瘫了。一个下午都没有休息一下有点缓不过来。也算是次不错的体验吧。

我感觉我正则已经入门了!

其他备份

《我的妹妹怎么可能是问题少女》

[第]+[一,二,四]+[,]*[三]*[卷]*[:]+[!]*[\u4e00-\u9fa5]*[,]*[\u4e00-\u9fa5]*[_]*[章]*[ch]*[a]*[s]*[pter]*[:]*[1234567890]*[ ]*[\u4e00-\u9fa5]*[…]*[!]*[:]*[ch]*[a]*[s]*[pter]*[1234567890]*[ ]*[:]*[ ]*[.]*[1234567890]*[,]*[ ]*[「,(]*[\u4e00-\u9fa5]*[」,)]*[。]*[…]*[!]*[「,(]*[\u4e00-\u9fa5]*[」,)]*[!]*

凝望彩虹的双眼

[番外]*第[一,二,三,四,五,六,七,八,九,十]+章[(上)]*[(下)]*:[\u4e00-\u9fa5]+[!]*[?]*[。]*[(][0-9]+[)]
👍 7

正则 轻小说

最后修改于1180天前

评论

贴吧 狗头 原神 小黄脸
收起

贴吧

  • 贴吧泡泡
  • 贴吧泡泡
  • 贴吧泡泡
  • 贴吧泡泡
  • 贴吧泡泡
  • 贴吧泡泡
  • 贴吧泡泡
  • 贴吧泡泡
  • 贴吧泡泡
  • 贴吧泡泡
  • 贴吧泡泡
  • 贴吧泡泡
  • 贴吧泡泡
  • 贴吧泡泡
  • 贴吧泡泡
  • 贴吧泡泡
  • 贴吧泡泡
  • 贴吧泡泡
  • 贴吧泡泡
  • 贴吧泡泡
  • 贴吧泡泡
  • 贴吧泡泡
  • 贴吧泡泡
  • 贴吧泡泡
  • 贴吧泡泡
  • 贴吧泡泡
  • 贴吧泡泡
  • 贴吧泡泡
  • 贴吧泡泡
  • 贴吧泡泡
  • 贴吧泡泡
  • 贴吧泡泡
  • 贴吧泡泡
  • 贴吧泡泡
  • 贴吧泡泡
  • 贴吧泡泡
  • 贴吧泡泡
  • 贴吧泡泡
  • 贴吧泡泡
  • 贴吧泡泡
  • 贴吧泡泡
  • 贴吧泡泡
  • 贴吧泡泡
  • 贴吧泡泡
  • 贴吧泡泡
  • 贴吧泡泡
  • 贴吧泡泡
  • 贴吧泡泡
  • 贴吧泡泡
  • 贴吧泡泡
  • 贴吧泡泡
  • 贴吧泡泡
  • 贴吧泡泡
  • 贴吧泡泡
  • 贴吧泡泡
  • 贴吧泡泡
  • 贴吧泡泡
  • 贴吧泡泡
  • 贴吧泡泡
  • 贴吧泡泡
  • 贴吧泡泡
  • 贴吧泡泡
  • 贴吧泡泡
  • 贴吧泡泡
  • 贴吧泡泡
  • 贴吧泡泡
  • 贴吧泡泡
  • 贴吧泡泡
  • 贴吧泡泡
  • 贴吧泡泡
  • 贴吧泡泡

狗头

  • 狗头
  • 狗头
  • 狗头
  • 狗头
  • 狗头
  • 狗头
  • 狗头
  • 狗头
  • 狗头
  • 狗头
  • 狗头
  • 狗头

原神

  • 原神
  • 原神
  • 原神
  • 原神
  • 原神
  • 原神
  • 原神
  • 原神
  • 原神
  • 原神
  • 原神
  • 原神
  • 原神
  • 原神
  • 原神
  • 原神
  • 原神
  • 原神
  • 原神
  • 原神
  • 原神
  • 原神
  • 原神

小黄脸

  • 小黄脸
  • 小黄脸
  • 小黄脸
  • 小黄脸
  • 小黄脸
  • 小黄脸
  • 小黄脸
  • 小黄脸
  • 小黄脸
  • 小黄脸
  • 小黄脸
  • 小黄脸
  • 小黄脸
  • 小黄脸
  • 小黄脸
  • 小黄脸
  • 小黄脸
  • 小黄脸
  • 小黄脸
  • 小黄脸
  • 小黄脸
  • 小黄脸
  • 小黄脸
  • 小黄脸
  • 小黄脸
  • 小黄脸
  • 小黄脸
  • 小黄脸
  • 小黄脸
  • 小黄脸
  • 小黄脸
  • 小黄脸
  • 小黄脸
  • 小黄脸
  • 小黄脸
  • 小黄脸
  • 小黄脸
  • 小黄脸
  • 小黄脸
  • 小黄脸
  • 小黄脸
  • 小黄脸
  • 小黄脸
  • 小黄脸
  • 小黄脸
  1. 路过随想 94天前

    对这几本轻小说很感兴趣,但评论里的链接失效了,希望博主能再发一次,在此致以谢意。

      1. 路过随想 86天前

        太感谢了,这些轻文的遗产能保存下来真是太好了。

  2. 冯小贤 1676天前

    一招(.*?)走天下 huaji_pc

    1. 季悠然 1676天前

      妙啊 huaji_shang

  3. 米石文创 1687天前

    我是误打误撞学会了设计,成了网页设计,成了UI设计,又成了产品设计。。。。

    1. 季悠然 1686天前

      误打误撞一条龙hhh

  4. 今日新鲜事 1690天前

    文章不错非常喜欢

  5. Yue 1693天前

    不愧是被誉为“火星文”的正则 huaji_pc

  6. ⑨BIE 1696天前

    huaji_han 正则一时爽,修改火葬场

  7. chz 1696天前

    两个课间是什么鬼。。

    1. 季悠然 1695天前

      字面意思huaji_shang

      1. chz 1695天前

        敢问您老芳龄?

        1. 季悠然 1693天前

          好问题,我的前两篇文章你应该能推出来吧

          1. chz
            chz 1690天前

            推出来了,所以我觉得当头一棒不够,可能要两棒。嗯,两棒也不一定够啊,三棒吧。

  8. 佛系派 1697天前

    果然厉害啊

  9. 乐心湖 1698天前

    正则用一次搜一次。 biexiao

  10. SomeBottle 1699天前

    正则真的是边搜边用了,不停地改,直至能用为止 huaji_pc

  11. Veen Zhao 1699天前

    无中生有 chaiquan_melon

  12. kindleer 1700天前

    正则表达式还是很有用的

  13. 油油 1701天前

    正则在手,天下我有

    1. 季悠然 1701天前

      嘿嘿 xiaoyan

  14. Given 1701天前

    TXT分享下?huaji

    1. 季悠然 1701天前

      https://zakuro.ink
      你值得拥有

  15. KicoModo 1703天前

    chaiquan_melon 无中生友?

  16. 夜杏 1703天前

    自说自话域名更换成rua.ink辣

    1. 季悠然 1703天前

      换好辣

  17. Given 1704天前

    说,你这个朋友到底是不是你自己 huaji_han huaji_han huaji_han

  18. 南楼月下 1705天前

    你口中的这个朋友该不会 就是你吧 huaji_mj

    1. 季悠然 1705天前

      https://zakuro.ink
      破案了 huaji_shang huaji_shang

      1. TheSky 1704天前

        你朋友是啥主题? huaji_pc 安利一下 huaji_djy ,真好看鸭 chigua2 chigua2

        1. TheSky 1704天前

          好像不是Typecho huaji_han huaji_han huaji_han

          1. 季悠然
            季悠然 1704天前

            这就一单页html加上我的删删改改huaji_han

  19. 幻焕 1707天前

    我决定不学了 chaiquanbugaoxin

  20. Nroy 1708天前

    正则还是很简单的,弄清楚元字符,限定符,分组和向后引用,优先级,定位符就好啦 chaiquan_melon

    1. 季悠然 1708天前

      心理层面的恐惧大于技术层面 chaiquanku

  21. Given 1708天前

    正则啊。。也不难,stack overflow能解决 huaji_han huaji_han huaji_han

    1. 季悠然 1708天前

      上个Stack Overflow还得出趟国,不去 huaji_shang huaji_shang

      1. mzrme 1707天前

        Stack Overflow可以上啊,或许是v6可以

      2. Given 1708天前

        明明国内能用,就是有几个JS不加载而已 huaji_pc huaji_pc huaji_pc

  22. 格子老师 1708天前

    最后的截图中还是缺少第28章

    1. 季悠然 1708天前

      我这个TXT缺斤少两 hemenjiu

  23. Eltrac 1708天前

    我正则现在都不会,要用到的时候都是边搜索边写的 2333 huaji_djy

    1. 季悠然 1708天前

      可能是我没有掌握搜索引擎的真谛 chaiquan_han

  24. c0sMx 1708天前

    无中生友 huaji_djy

    1. 季悠然 1708天前

      huaji_xiao 别这样

  25. 无用挂件 1708天前

    “我有一个朋友” huaji_shang

    1. 季悠然 1708天前

      huaji_shanghuaji_shang

目录

avatar

季悠然

寻找有趣的灵魂

140

文章数

2099

评论数

3

分类

好热啊

arknights!

不要太小看人类了!

1547