正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来:(1)检查一个串中是否含有符合某个规则的子串(即我们在开发中用到的正则表达式验证功能),并且可以得到这个子串;(2)根据匹配规则对字符串进行灵活的替换操作。
正则表达式的“祖先”可以一直上溯至对人类神经系统如何工作的早期研究。
Warren McCulloch 和 Walter Pitts 这两位神经生理学家研究出一种数学方式来描述这些神经网络。
1956年, 一位叫 Stephen Kleene 的数学家在 McCulloch 和 Pitts 早期工作的基础上,发表了一篇标题为“神经网事件的表示法”的论文,引入了正则表达式的概念。正则表达式就是用来描述他称为“正则集的代数”的表达式,因此采用“正则表达式”这个术语。
随后,发现可以将这一工作应用于使用 Ken Thompson 的计算搜索算法的一些早期研究,Ken Thompson 是 Unix 的主要发明人。正则表达式的第一个实用应用程序就是 Unix 中的qed编辑器。
如他们所说,剩下的就是众所周知的历史了。从那时起直至现在正则表达式都是基于文本的编辑器和搜索工具中的一个重要部分。
正则表达式现在很多编程语言都支持,也提供了相应的API来操作,在很多软件中也得到了广泛的应用。像我们在操作系统中、UE、word、Eclipse等中的查找,都是使用的正则表达式。而我们在编程中有时使用正则表达式,会起到事半功倍的效果,大大的提高了效率。
可以通过使用正则表达式来实现强大的功能,但当看到那一串串抽象的逻辑复杂的表达式是,就望而却步,觉得非常难。其实,只要掌握了基本的操作符及其使用方法,在开发过程中流畅的使用是不难的。通过自己在实践中总结,相信很快就能写出符合要求的正则表达式来。在web开发中像验证用户输入的用户名、密码、手机号码、邮箱、身份证号码等,像这样的功能在JS中使用正则表达式在来做这些验证,非常的方便实用,可减少与后台的交互。
接下来的将会用几个篇幅将用来分享一下正则表达的使用。JAVA在JDK1.4中也添加了相应的正则表达式的API,在以后的篇幅中会顺带介绍JAVA中正则表达式API的使用。