正则表达式,也被称为正式的表达式,规则表示式,英文名称regular expression,在代码中常简写为regex、regexp、RE,这是计算机科学的一个概念。正则表达式可以快速实现一个非常复杂的业务逻辑,只有一个非常简短的表达句子。掌握正则表达式可以大大提高你的发展效率。
正则表达式是字符串操作的逻辑公式,即使用一些事先定义的特定字符和这些特定字符的组合,形成一个“规则字符串”,这个“规则字符串”过滤逻辑用于表达字符串。正则表达式是对匹配模式的描述(pattern)文本字符串用于搜索和匹配字符串集。正则表达式通常用于检索和替换符合某种模式(规则)的文本。
正则表达式为它出现在20世纪40年代,用于描述常规语言和正则表达式“鼻祖”也许它可以追溯到科学家对人类神经系统工作原理的早期研究。但肯肯直到20世纪70年代才出现在编程中·汤普逊编写的QED文本编辑器是编程中最早使用正则表达式的地方。在过去的60年里里,正则表达式逐渐从模糊而深刻的数学概念发展成为各种计算机工具和软件包应用的主要功能。不仅有很多UNIX工具支持正则表达式。在过去的20年里,在WINDOWS阵营下,正则表达式的思想和应用大多是 Windows 支持和嵌入开发者工具包中的应用!从正则表达式到Microsoft Visual Basic 6 或 Microsoft 到VBScript.NET 在Framework的探索和开发中,WINDOWS系列产品对正则表达式的支持已经发展到无与伦比的高度,几乎所有 Microsoft 开发人员和一切.正则表达式可用于NET语言。如果你是一个接触计算机语言的工作者,那么你将在主流操作系统中(*nix[Linux, Unix等]、Windows、HP、Beos等))、开发语言的主流(delphi、Scala、PHP、C#、Java、C++、Objective-c、Swift、VB、Javascript、Ruby、Python等。、在数以亿计的各种应用软件中,都能看到正则表达式的优美舞姿。
许多程序设计语言支持正则表达式字符串操作。例如,在在Perl中建立了一个强大的正则表达引擎。正则表达的概念最初是由Unix中的工具软件(如sed和grep)推广的。正则表达通常被缩写为“regex”,有regexp的单数、regex,regexps复数、regexes、regexen。
主要有三种正则表达式引擎:
1.传统的非确定性有限自动机支持可追溯性(NFA)引擎。例如Perl、Python、Emacs、.NET、Java使用的引擎。
2.自动机速度更快,但确定性更有限(DFA)比如awk、egrep、lex使用的引擎。
3.标准化但更慢POSIX NFA引擎。比如GNU。 awk、GNU 使用grep的引擎。
正则表达式通常用于字段或任何字符串的验证,如以下验证的基本日期格式JavaScript代码:
var reg = /^(\\d(四)(|\/)(d(1)2(\\d{1,2}$/$;
var r = fieldValue.match(reg);
if(r==null)alert('Date format error!');
再举一个实际的例子,例如,我们在网站上看到对用户名规则的限制如下:只能包括小写字母、数字、下划线和连接字符,并限制用户名的长度在3~15个字符之间,如何验证用户名是否符合规则? ?使用以下正则表达式:
正则表达式是一种强大的武器,几乎可以用于所有的程序设计语言和计算机平台来完成各种复杂的文本处理工作。如此强大的计算机技术,值得你花时间和精力去深入学习。