正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。

看着书架上厚厚一本正则表达式的书,我表示很头疼。所以这么久以来我都没有花功夫去琢磨它,但在实际过程中,它又确实发挥了很大的作用。
不知道看文章的各位有没有这样的经历,一篇word文档,手动选中某段文字,然后点字体字号,然后选下一段继续上述操作,直到有一天知道有格式刷这东西;然后点一下格式刷,刷一下,再点一下再刷一下,直到有一天你才发现格式刷是可以双击后连续操作的。至此你的Word编辑效率提高了整整一个level。正则表达式用好了,就像那个格式刷,效率大大的,只不过它稍微复杂了一点。
言归正传,把目前目前用到的比较简单的方法记录一下。以下方法基本上都是通过Notepad++实现,类似编辑器,包括AutoWikiBrowser同样可以做到。
注:我也只是摸索,才刚入了个门而已,如果有懂行的正好看到,还请不吝赐教。后期我也会不定期更新正则表达式的新用法。

一、加入空白行

我们知道,MediaWiki的分行就是在两行之间加入一个空白行。那么如果有大量分行的文字,比如我常常会遇到的书籍目录,如果一个个敲回车(我还真这么干过一段时间),手腕折寿啊。
在查找目标中输入:$
在替换为中输入:\r\n
点击全部替换,所有行都加上了空白行。
notepad搜索替换.png
当然,你如果直接用可视化编辑器就可以不用这么复杂了。

二、去除尾部数字

这同样是我在编辑书籍目录中最常遇到的情况,网上很多的目录信息都是带页码,但对我的站点而言这种页码意义不大,有书我就直接翻书上的目录了,没书知道页码又有何用?无非想了解一下书籍的整体结构而已。所以如果有页码我一律删除,保持信息的简洁和清爽。
在查找目标中输入:\d+$
在替换为中保持空白
点击全部替换,所有的数字都删除了。在查找目标中\d前的字符根据实际情况而定,有可能像上例中是紧跟数字,也可能是空格或者全角空格,只要记得在\d前加上相同字符即可。保险期间也可以再加上\b做开始定位防止误删,比如在查找目标中输入:\b \d+$
去除尾部数字.gif

三、在中英文(数字与中文)间加入空格

编辑目录时会碰到序号和文字连在一起的情况,阅读起来略显麻烦,最好是加个空格。另外,中英文对照索引也会碰到中英文之间连在一起,比如下面这一下段:

群体偏向group extremity shift
群体气氛group climate
群体思维groupthink
群体压力group pressure

在查找目标中输入:([\x{4e00}-\x{9fa5}])([a-zA-Z])
在替换为中输入:$1 $2
点击全部替换,中英文之间就加上了一个全角空格,效果见下文。
如果是目录中的数字和文本,那么就需要在查找目标中输入:([0-9])([\x{4e00}-\x{9fa5}])就可以了。

四、自动加上内链符号[[]]

这个用到的更少,但是最近在编辑某本书的索引时恰好就碰上了,因为它的格式简单,但是内容却很多。比如上面处理完de:

群体偏向 group extremity shift
群体气氛 group climate
群体思维 groupthink
群体压力 group pressure

每一行前面的中文都是一个术语,也就是百科站的词条。
在查找目标中输入:([\x{4e00}-\x{9fa5}]+)
在替换为中输入:[[$1]]
自动加内链.gif

最后修改:2022 年 12 月 27 日
如果觉得我的文章对你有用,请随意赞赏