正则表达式(regular正则表达式(regularexpression)
前言
正则表达式是烦琐的,但是强大的,学会之后的应用会让你除了提高效率外,会给你带来
绝对的成就感。只要认真去阅读这些资料,加上应用的时候进行一定的参考,掌握正则表
达式不是
问题。
索引
1._引子2._正则表达式的历史3._正则表达式定义
3.1_普通字符3.2_非打印字符3.3_特殊字符3.4_限定符3.5_定位符3.6_选择3.7_后向引用
4._各种操作符的运算优先级5._全部符号解释6._部分例子7._正则表达式匹配规则
7.1_基本模式匹配7.2_字符簇7.3_确定重复出现
8._参考文献
1.引子目前,正则表达式已经在很多
软件中得到广泛的应用,包括*nix(Linux,Unix等),
HP等操作
系统,
PHP,C#,
Java等开发环境,以及很多的应用软件中,都可以看到正则表达
式的影子。
正则表达式的使用,可以通过简单的办法来实现强大的功能。为了简单有效而又不失
强大,造成了正则表达式代码的难度较大,
学习起来也不是很容易,所以需要付出一些努
力才行,入门之后参照一定的参考,使用起来还是比较简单有效的。
例子:^.+@.+\\..+$
这样的代码曾经多次把我自己给吓退过。可能很多人也是被这样的代码给吓跑的吧。
继续阅读本文将让你也可以自由应用这样的代码。
注意:这里的第7部分跟前面的内容看起来似乎有些重复,目的是把前面表格里的部分
重新描述了一次,目的是让这些内容更容易理解。
2.正则表达式的历史
正则表达式的“祖先”可以一直上溯至对人类神经系统如何
工作的早期研究。Warren
McCulloch和WalterPitts这两位神经生
理学家研究出一种数学方式来描述这些神经网
络。1956年,一位叫StephenKleene的数学家在McCulloch和Pitts早期工作的基础
上,发表了一篇标题为“神经网事件的表示法”的论文,引入了正则表达式的概念。正则
表达式就是用来描述他称为“正则集的代数”的表达式,因此采用“正则表达式”这个术
语。
随后,发现可以将这一工作应用于使用KenThompson的计算
搜索算法的一些早期研
究,KenThompson是Unix的主要发明人。正则表达式的第一个实用应用
程序就是Unix
中的qed编辑器。
如他们所说,剩下的就是众所周知的历史了。从那时起直至现在正则表达式都是基于
文本的编辑器和搜索工具中的一个重要部分。
3.正则表达式定义正则表达式(regularexpression)描述了一种字符串匹配的模式,可以用来检查一个
串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。
列目录时,dir*.txt或ls*.txt中的*.txt就不是一个正则表达式,因为这里*与正则式