想象一下这幅图景:你需要检索某台 WEB 服务器上的页面中的重复单词(例如:“web 视界”),进行大规模文本编辑时,这是一项常见的任务。程序必须满足下面的 8 要求:
- 能检查多个文件,挑出包含重复单词的行,高亮标记每一个重复单词(使用标准 ANAI)的转义字符序列(escape sequence)),同时必须显示这行文字来自哪个文件。
- 能跨行查找,及时两个单词一个在某行末尾而另一个在下一行的开头,也算重复单词。
- 能进行不区分大小写的查找,例如“web 视界”和“WEB 视界”,重复单词之间可以出现任意数量的空白字符(空格符、制表符、换行符之类)。
- 能查找 HTML tag 分隔的重复单词。HTML tag 用于标记互联网页面上的文本,例如,粗体单词是这样表示的:“……这篇文章是 正则表达式入门 ,初步介绍正则表达式。”。
这些问题不容易解决,但是又不得不解决。如果使用正则表达式,你就会发现这些问题变得简单了。
正则表达式的使用难度只相当于文本编辑器的搜索命令,但其功能却与完整的文本处理与语言一样强大。《正则表达式》将系统的由浅入深的讲解正则表达式,展示正则表达式提高生产率的诸多办法。这个专题的目的不是为了学会正则表达式,而是教你如何优雅的使用正则表达式。
这一篇文章只是描述了关于正则表达式的一些口头上的东西,更有趣的就在下个章节。