女生找对象与正则表达式(通配符)

正则表达式是用来进行文本匹配的工具,主要用于编程,一般人都没听过。不过,如果平时经常进行文本处理,也许会接触通配符。

通过简单的几个通配符,我们就能让电脑帮我们找出指定的对象(Object),当然你理解为男女朋友也可以,人们找对象都会对长相、性格、学历、思想等各方面都有要求,巴拉巴拉一大堆。有个笑话说找男友的标准很简单:180m2,180cm,180mm。不懂的人满头雾水,懂的会心一笑。通过后面这三个单位,我们可以明白它分别指什么。

同样的,通过通配符,我们也可以让电脑明白,我们想找的文本是什么样子的。

举例介绍一下通配符的用处。比如我手头有一份txt格式的电子书,《醒世恒言》。如果直接传到Kindle中观看,没有带链接的目录,非常不方便。把txt文档做成带目录的mobi文件,过程可分为三步:1.用Word添加目录、2.另存为Html文件、3.用calibre转化成mobi文件

Word中给每一级标题设置对应的样式,再依次点击「引用」、「目录」、「插入目录」菜单,设置每种标题样式的目录级别,再点确定就可以指定位置生成目录。

那么问题来了,《醒世恒言》一共四十卷,要对四十个标题设置样式,全部要一个个手动做吗?这时,通配符就派上用场。

仔细观察正文


第一卷 两县令竞义婚孤女
.......
第二卷 三孝廉让产立高名
.......
第三卷 卖油郎独占花魁
.......
.......
.......
第三十九卷 汪大尹火焚宝莲寺
.......
第四十卷 马当神风送滕王阁
.......
.......



总结出标题的特征:
1.单独一行。
2.以「第X卷」开头,和标题之间有个空格。X是「一二三四五六七八九十」中1至3个字的组合。

只要满足这两个条件,这一行的文本就是标题。如何把这两个原则告诉电脑呢?对应的通配符如下:

(第[一二三四五六七八九十]@卷 *)^13

解释:
[一二三四五六七八九十]是可选的字符范围,@表示在其中任意选1个或多个字符。这两个合起来,就是任意中文数字的组合,涵盖了所有编号。
*表示任意字符,这里代表每一卷的标题
^13是通配符中的段落标记

OK,有了通配符表达式,我们就可以设置标题了。在Word中按Ctrl+H,在「查找内容」中填入上述表达式。点击左下角的「更多」,勾上「使用通配符」。单击「替换为」后面的输入框,什么都不用输,再点击左下角的「格式」、「样式」,选择你想要的标题样式。如图:
最后点「全部替换」,四十个标题就全部变成了指定格式。 有人会问,「替换为」中明明什么都不填,为什么点了替换,没有把这些标题删除呢?因为这里指定「替换为」的样式。如果没指定,则会删除文字,如果指定样式,则会将样式应用到找到的文本。 接下来再插入目录、保存为html、生成mobi文件,点几下鼠标就能办到。传入Kindle就可以使用刚生成的目录了。 除了Word外,还有Sublime Text、Notepad、EditPlus等文本编辑器也提供了通配支持,它们之间的通配符略有出入。 编程中需要处理字符串(含义比「文本」广)的情况非常多,于是出现了更强大的正则表达式。那些乱七八糟的语法规则我也记不住,整理了一份列表,用到时查,用久了自然熟能生巧。有需要的可以收藏一下: https://www.zybuluo.com/king/note/43674 这不是一篇正则表达式教程,仅仅是一份速查手册。 转载请注明出处

相关文章

一、校验数字的表达式 1 数字:^[0-9]*$ 2 n位的数字:^d{n}$ 3 至少n位的数字:^d{n,}$ 4 m-n位的数字...
正则表达式非常有用,查找、匹配、处理字符串、替换和转换字符串,输入输出等。下面整理一些常用的正则...
0. 注: 不同语言中的正则表达式实现都会有一些不同。下文中的代码示例除特别说明的外,都是使用JS中的...
 正则表达式是从信息中搜索特定的模式的一把瑞士军刀。它们是一个巨大的工具库,其中的一些功能经常...
一、校验数字的表达式 数字:^[0-9]*$ n位的数字:^\d{n}$ 至少n位的数字:^\d{n,}$ m-n位的数...
\ 将下一字符标记为特殊字符、文本、反向引用或八进制转义符。例如,“n”匹配字符“n”。“\n...