正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。Ken Thompson第一个把正则表达式用于计算机领域,开发了qed和grep两个实用文本处理工具。
一个正则表达式通常被称为一个模式 (pattern),为用来描述或者匹配一系列符合某个句法规则的字符串。例如:Handel、Händel 和 Haendel 这三个字符串,都可以由“Ha|ä|(ae)ndel”这个模式来描述。正则表达式有多种不同的风格,不同编程语言之间的正则表达式基本相同,在一些细节上不同。
详细请参考文献《正则表达式30分钟入门教程》 。
扩展阅读:
形式语言(Formal language),在数学、逻辑和计算机科学中,形式语言是用精确的数学或机器可处理的公式定义的语言。如语言学中语言一样,形式语言一般有两个方面: 语法和语义。在形式语言理论中,形式语言是一个字母表上的某些有限长字符串的集合。一个形式语言可以包含无限多个字符串。
巴科斯范式(Backus Normal Form,缩写为 BNF),又称为巴科斯-诺尔范式(Backus-Naur Form,也译为巴科斯-瑙尔范式),是一种用于表示上下文无关文法的语言,上下文无关文法描述了一类形式语言。广泛地使用于程序设计语言、指令集、通信协议的语法表示中。
扩展巴科斯-瑙尔范式(EBNF)是表达作为描述计算机编程语言和形式语言的正规方式的上下文无关文法的元语法(metalanguage)符号表示法。它是基本巴科斯范式(BNF)元语法符号表示法的一种扩展。其中:
在双引号中的字("word")代表着这些字符本身。而double_quote用来代表双引号。
在双引号外的字(有可能有下划线)代表着语法部分。
尖括号( < > )内包含的为必选项。
方括号( [ ] )内包含的为可选项。
大括号( { } )内包含的为可重复0至无数次的项。
竖线( | )表示在其左右两边任选一项,相当于"OR"的意思。
::= 是“被定义为”的意思。
参考文献:
正则表达式,
http://www.baike.com/wiki/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F
正则表达式,
http://zh.wikipedia.org/wiki/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F
正则表达式30分钟入门教程,
http://www.cnblogs.com/deerchao/archive/2006/08/24/zhengzhe30fengzhongjiaocheng.html