正则表达式 – 超强的字符处理工具

正则表达式不是一个软件,但是它是从软件中独立出来的一种概念,同时也是一种工具。相信使用 unix 的朋友是不用再介绍的,但是对于长期使用 windows 的朋友,对这个工具也许是很陌生的。

正则表达式 - 超强的字符处理工具 1

为什么有些人喜欢用 Gvim/vim,认为 vim 是王道?

因为 vim 是支持正则表达式最好的编辑工具之一。真是因为正则表达式本身就很强大,只要一个软件加入了这个正则表达式,那这个软件也就随之强大起来。因为正则表达式可以让你变成字符魔术师,文档字符任你玩弄。

正则表达式是什么呢?

简单的讲,就是模糊表述你要找的字符。如果你了解 DOS 命令中的通配符 ‘?’ 和 ‘*’ 就很好理解了,它就是一个增强型的字符通配符。

它的历史可以追溯到 50 年代之前,第一次应用大概是 1966 年在 unix 开发的 QED 编辑器上。

虽然在电脑技术发展历史上,正则表达式显得非常的古老,但是如今一些新的应用 (如 Google 代码搜索,广告过滤等),使得它展示出来新的活力。

它虽然需要一些时间学习,但是上手不难,可以说如果你愿意花上一天时间去学习,相信一生都十分受用(只要电脑还存在着)。

我是在学习 perl 的时候遇到正则表达式的问题,开始学习也是比较反感,但后来做作业,用来处理字符的时候,才发现它是如此的强大,并喜欢上了这个工具,但一直以为只是 perl 的一个部分,后来逐渐发现,现代的高级编程语言基本都包含了正则表达式工具。这时我才开始注意这个超强的字符处理工具。

如今的应用可以说数不胜数了,我大概研究了一下,正则表达式有以下主要应用

1. 字符/数据 匹配

2. 字符/数据 搜索

3. 字符/数据 替换

4. 字符/数据 提取

5. 字符/数据 过滤

(其实 4,5 就是 3 的一种特定的应用)

常见用到正则表达式的软件:(主要是我用到过的)

1. 编辑器 (搜索/替换,另外加排版功能)

Gvim, JCreator (java 编辑器)

2. 浏览器(主要功能是过滤广告)

maxthon,firefox

3. 搜索引擎 (主要是搜索资料)

google code搜索

至于编程语言,正则表达式基本上已经是现代高级编程语言的一个必带的工具,像 java,javascript,perl,php 等等,都有正则表达式的字符处理应用。

所以只要你学会了正则表达式的规则,那是受用无穷,到处可以使用,很实用的电脑应用能力。

对于普通喜欢上网的朋友,不编程,不排版文档,那么正则表达式则可能对于你最主要的功能就是广告过滤了。

相信各位饱受网络广告之苦。正是由于所有网页其实都是由字符组成的,所以正则表达式绝对可以派上用处。

如果你下载的万能广告过滤不起作用的时候,就可以自己利用正则表达式来制作一条过滤规则,将广告通通清除。

所以说如今正则表达式的应用是越来越广了,已经从 unix 走向了 windows 了,相信不久将成为一种电脑技术的通用标准。

就是不要学习,最好也要知道一下。至于教程,网上无数,我这里也只是介绍这个工具。

下图是我用 maxthon 的正则表达式过滤器处理的一个网页,大家看看有什么玄机在里面哈哈

正则表达式 - 超强的字符处理工具 2

33 条留言

  1. badblue 2007/09/25 回复
  2. scavin 2007/09/25 回复
  3. 偶爱偶家 2007/09/25 回复
  4. shalalal 2007/09/25 回复
  5. tubiebility 2007/09/25 回复
  6. islet8 2007/09/25 回复
  7. 罂粟 2007/09/25 回复
  8. F 2007/09/25 回复
  9. guoxl 2007/09/25 回复
  10. lxltop 2007/09/25 回复
  11. scavin 2007/09/25 回复
  12. scavin 2007/09/25 回复
  13. cookie 2007/09/25 回复
  14. 未雨 2007/09/25 回复
  15. caoglish 2007/09/25 回复
  16. scavin 2007/09/25 回复
  17. caten 2007/09/25 回复
  18. Fwolf 2007/09/25 回复
  19. scavin 2007/09/26 回复
  20. caoglish 2007/09/26 回复
  21. Fwolf 2007/09/27 回复
  22. Paveo 2007/09/27 回复
  23. 蒜皮 2007/10/06 回复
  24. 飞羽 2007/10/24 回复
  25. netwjx 2007/11/01 回复
  26. paradox 2008/02/11 回复
  27. dofy 2008/03/03 回复
  28. 里八神 2008/06/21 回复
  29. 智慧 2009/01/17 回复
  30. hacal 2010/01/27 回复
  31. lecsven 2010/10/15 回复

写留言