谁发明正则表达式?

作者&投稿:顾底 (若有异议请与网页底部的电邮联系)
正则表达式的起源~

正则表达式的“鼻祖”或许可一直追溯到科学家对人类神经系统工作原理的早期研究。美国新泽西州的Warren McCulloch和出生在美国底特律的Walter Pitts这两位神经生理方面的科学家,研究出了一种用数学方式来描述神经网络的新方法,他们创造性地将神经系统中的神经元描述成了小而简单的自动控制元,从而作出了一项伟大的工作革新。在1956 年,一位名叫Stephen Kleene的数学科学家,他在Warren McCulloch和Walter Pitts早期工作的基础之上,发表了一篇题目是《神经网事件的表示法》的论文,利用称之为正则集合的数学符号来描述此模型,引入了正则表达式的概念。正则表达式被作为用来描述其称之为“正则集的代数”的一种表达式,因而采用了“正则表达式”这个术语。之后一段时间,人们发现可以将这一工作成果应用于其他方面。Ken Thompson就把这一成果应用于计算搜索算法的一些早期研究,Ken Thompson是 Unix的主要发明人,也就是大名鼎鼎的Unix之父。Unix之父将此符号系统引入编辑器QED,然后是Unix上的编辑器ed,并最终引入grep。Jeffrey Friedl 在其著作《Mastering Regular Expressions (2nd edition)》(中文版译作:精通正则表达式,已出到第三版)中对此作了进一步阐述讲解,如果你希望更多了解正则表达式理论和历史,推荐你看看这本书。自此以后,正则表达式被广泛地应用到各种UNIX或类似于UNIX的工具中,如大家熟知的Perl。Perl的正则表达式源自于Henry Spencer编写的regex,之后已演化成了pcre(Perl兼容正则表达式Perl Compatible Regular Expressions),pcre是一个由Philip Hazel开发的、为很多现代工具所使用的库。正则表达式的第一个实用应用程序即为Unix中的 qed 编辑器。然后,正则表达式在各种计算机语言或各种应用领域得到了广大的应用和发展,演变成为计算机技术森林中的一只形神美丽且声音动听的百灵鸟。以上是关于正则表达式的起源和发展的历史描述,如今正则表达式在基于文本的编辑器和搜索工具中依然占据着一个非常重要的地位。在最近的六十年中,正则表达式逐渐从模糊而深奥的数学概念,发展成为在计算机各类工具和软件包应用中的主要功能。不仅仅众多UNIX工具支持正则表达式,近二十年来,在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等)、数以亿万计的各种应用软件中,都可以看到正则表达式优美的舞姿。

正则表达式的“鼻祖”或许可一直追溯到科学家对人类神经系统工作原理的早期研究。美国新泽西州的Warren McCulloch和出生在美国底特律的Walter Pitts这两位神经生理方面的科学家,研究出了一种用数学方式来描述神经网络的新方法,他们创新地将神经系统中的神经元描述成了小而简单的自动控制元,从而作出了一项伟大的工作革新。 在1956 年,出生在被马克·吐温(Mark Twain)称为“美国最美丽的城市之一的”哈特福德市的一位名叫Stephen Kleene的数学科学家,他在Warren McCulloch和Walter Pitts早期工作的基础之上,发表了一篇题目是《神经网事件的表示法》的论文,利用称之为正则集合的数学符号来描述此模型,引入了正则表达式的概念。正则表达式被作为用来描述其称之为“正则集的代数”的一种表达式,因而采用了“正则表达式”这个术语。 之后一段时间,人们发现可以将这一工作成果应用于其他方面。Ken Thompson就把这一成果应用于计算搜索算法的一些早期研究,Ken Thompson是 Unix的主要发明人,也就是大名鼎鼎的Unix之父。Unix之父将此符号系统引入编辑器QED,然后是Unix上的编辑器ed,并最终引入grep。Jeffrey Friedl 在其著作“Mastering Regular Expressions (2nd edition)”中对此作了进一步阐述讲解,如果你希望更多了解正则表达式理论和历史,推荐你看看这本书。 自此以后,正则表达式被广泛地应用到各种UNIX或类似于UNIX的工具中,如大家熟知的Perl。Perl的正则表达式源自于Henry Spencer编写的regex,之后已演化成了pcre(Perl兼容正则表达式Perl Compatible Regular Expressions),pcre是一个由Philip Hazel开发的、为很多现代工具所使用的库。正则表达式的第一个实用应用程序即为Unix中的 qed 编辑器。 然后,正则表达式在各种计算机语言或各种应用领域得到了广大的应用和发展,演变成为目前计算机技术森林中的一只形神美丽且声音动听的百灵鸟。 以上是关于正则表达式的起源和发展的历史描述,到目前正则表达式在基于文本的编辑器和搜索工具中依然占据这一个非常重要的地位。 在最近的六十年中,正则表达式逐渐从模糊而深奥的数学概念,发展成为在计算机各类工具和软件包应用中的主要功能。不仅仅众多UNIX工具支持正则表达式,近二十年来,在WINDOW的阵营下,正则表达式的思想和应用在大部分 Windows 开发者工具包中得到支持和嵌入应用!从正则式在Microsoft Visual Basic 6 或 Microsoft VBScript到.NET Framework中的探索和发展,WINDOWS系列产品对正则表达式的支持发展到无与伦比的高度,目前几乎所有 Microsoft 开发者和所有.NET语言都可以使用正则表达式。如果你是一位接触计算机语言的工作者,那么你会在主流操作系统(*nix[Linux, Unix等]、Windws、HP、BeOS等)、目前主流的开发语言(PHP、C#、Java、C++、VB、Javascript、Rubby等)、数以亿万计的各种应用软件中,都可以看到正则表达式优美的舞姿。

http://baike.baidu.com/view/94238.htm
看百科吧,总结得很细致。最初是两个科学家用符号表示来研究神经元,后来发展成一种专门的科学方法。
有一点注意的是:正则不属于某种程序或者说编程语言,是独立的,是一种处理事情的方法,是一种思想方法。。。

由来:
1)美国新泽西州的Warren McCulloch和出生在美国底特律的Walter Pitts这两位神经生理方面的科学家,研究出了一种用数学方式来描述神经网络的新方法,他们创造性地将神经系统中的神经元描述成了小而简单的自动控制元,从而作出了一项伟大的工作革新。
2)在1956 年,出生在被马克·吐温(Mark Twain)称为“美国最美丽的城市之一”的哈特福德市的一位名叫Stephen Kleene的数学科学家,他在Warren McCulloch和Walter Pitts早期工作的基础之上,发表了一篇题目是《神经网事件的表示法》的论文,利用称之为正则集合的数学符号来描述此模型,引入了正则表达式的概念。正则表达式被作为用来描述其称之为“正则集的代数”的一种表达式,因而采用了“正则表达式”这个术语。
3)之后一段时间,人们发现可以将这一工作成果应用于其他方面。Ken Thompson就把这一成果应用于计算搜索算法的一些早期研究,Ken Thompson是 Unix的主要发明人,也就是大名鼎鼎的Unix之父。Unix之父将此符号系统引入编辑器QED,然后是Unix上的编辑器ed,并最终引入grep。


谁发明正则表达式?
Perl的正则表达式源自于Henry Spencer编写的regex,之后已演化成了pcre(Perl兼容正则表达式Perl Compatible Regular Expressions),pcre是一个由Philip Hazel开发的、为很多现代工具所使用的库。正则表达式的第一个实用应用程序即为Unix中的 qed 编辑器。 然后,正则表达式在各种计算机语言或各种应用领域得到...

什么是正则表达式?举例说明一下
正则表达式是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。3.1 普通字符 由所有那些未显式指定为元字符的打印和非打印字符组成。这包括所有的大写和小写字母字符,所有数字,所有标点符号以及一些符号。3....

python发明多久了(谁发明的python)
4、文本处理:python提供的re模块能支持正则表达式,还提供SGML,XML分析模块,许多程序员利用python进行XML程序的开发。 5、数据库编程:程序员可通过遵循PythonDB-API(数据库应用程序编程接口)规范的模块与MicrosoftSQLServer,Oracle,Sybase,DB2,MySQL、SQLite等数据库通信。python自带有一个Gadfly模块,提供了一个完整的SQL环境。

正则表达式 1-9任意数字
正则表达式 1-9任意数字:[1-9] 。

79岁老汉4年发明“七笔输入法”
条件:知道网上找资料,能够把看似复杂的问题分解成一小块一小块来解决,会用文本处理软件,像Office办公软件,Textpro,用上多多码表编辑器(这个很棒),知道一点正则表达式(这个不难),了解一下什么是GBK 、GB18030、Unicode就行了。真的不需要编程知识。如果仅仅是对其他码表输入法修改一下这就更简单...

django怎么发明的(django的特点)
2、URL分派:使用正则表达式匹配URL,你可以设计任意的URL,没有框架的特定限定。像你喜欢的一样灵活。 3、模版系统:使用Django强大而可扩展的模板语言,可以分隔设计、内容和Python代码。并且具有可继承性。 4、表单处理:你可以方便的生成各种表单模型,实现表单的有效性检验。可以方便的从你定义的模型实例生成相应的表单...

为什么javascript正则不支持反向预查?
查了一下,很有趣的是,原因应该是Javscript的发明者在设计js正则表达式的时候没有加进去。\\x0d\\x0a\\x0d\\x0a根据他们讨论的邮件,Brendan Eich,就是Js发明者,在提交ECMAScript 3规范的时候,就没有加进反向预查,可能是忘了,可能是没主意,总之是记不清了;而另一位 Waldemar Horwat 提到...

求一个正则表达式,验证是不是以http:\/\/开头,急!!!求指导!!!
可以写成: http:\\\/\\\/ 其中\/前面要加转义符\\

为什么javascript正则不支持反向预查?
查了一下,很有趣的是,原因应该是Javscript的发明者在设计js正则表达式的时候没有加进去。根据他们讨论的邮件,Brendan Eich,就是Js发明者,在提交ECMAScript 3规范的时候,就没有加进反向预查,可能是忘了,可能是没主意,总之是记不清了;而另一位 Waldemar Horwat 提到,原因是当时他们参考了...

python中用正则表达式去掉文本中所有的标点符号
我的理解是 python’s的“ ’ ”也是字符 ,和标点符号一样。你只要把去除的字符都加到正则表达式的括号中就可以了。 ,所以:import re r='[’!"#$%&\\'()*+,-.\/:;<=>?@[\\\\]^_`{|}~]+'line=re.sub(r,'',"python’s")print line ...

静乐县18896606543: 正则表达式的起源 -
辕聪唐林: 正则表达式的“鼻祖”或许可一直追溯到科学家对人类神经系统工作原理的早期研究.美国新泽西州的Warren McCulloch和出生在美国底特律的Walter Pitts这两位神经生理方面的科学家,研究出了一种用数学方式来描述神经网络的新方法,他们...

静乐县18896606543: 有没有大哥给我解释下这个正则表达式是什么意思啊[^4,\\D],[]中逗号有啥作用哈~ -
辕聪唐林: 就是匹配除 4 , \ D 之外的其它字符

静乐县18896606543: 什么是正则表达式?举例说明一下 -
辕聪唐林: 目前,正则表达式已经在很多软件中得到广泛的应用,包括*nix(Linux, Unix等),HP等操作系统,PHP,C#,Java等开发环境,以及很多的应用软件中,都可以看到正则表达式的影子. 正则表达式的使用,可以通过简单的办法来实现强大的功能....

静乐县18896606543: 如何用正则表达式去掉千位的逗号 -
辕聪唐林: $str = '1,116'; echo preg_replace('/,/' , '' , $str); //=================================================== using System; using System.Collections.Generic; using System.Text; using System.Text.RegularExpressions; namespace ...

静乐县18896606543: 正则(关于正则的基本详情介绍)
辕聪唐林: 1、正则表达式(Regular Expression,又称规则表达式,在代码中常简写为regex、regexp或RE)是指对有限自动机所接受的语言或时序开关电路的行为的形式描述.2、正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本.3、许多程序设计语言都支持利用正则表达式进行字符串操作.

静乐县18896606543: ASP.NET,JSP,Python,Ruby,PERL各自的利弊 -
辕聪唐林: 1. asp vs jsp:asp运行在windows下的.net平台下,jsp在java平台下(可以是windows或linux或mac等等带的java平台),两者都只能做web开发的表现层(就是只是用来写网页).两者的比较可以看作两种平台的比较(.net和java):.net平台支持几...

静乐县18896606543: 谁发明 零宽断言 这个词? -
辕聪唐林: 赞一个,“表达式规则”就顾名思义了.'零宽断言','Lookahead and Lookbehind Zero-Length Assertions'直译过来的,功能上它去匹配了字符串,只告诉你匹配是否成功.Zero-Length,不消费任何字符;Assertions,成功还是失败,所以是断言.改名叫'不占用字符匹配'吗?总之,都不是很容易被理解的.

静乐县18896606543: 正则表达式 !\\^\\.\\*\\$!([^!]+)! 是什么意思 -
辕聪唐林: 在java中要进行转义,所以转化成标准正则表达式后就是“ !\^\.\*\$!([^!]+)!” 正则表达式中\^ 表示就是^的本身的意思,\. \$ ,同理得知;所以最后你的表达式表示!^.$! 开头后面跟任意非!的字符串重复一次到无穷次,然后以!结束.例如:1321312!^.$! 123!123123. 如果想让字符串只能是!^.$! 123! ,两边没有其他字符的, 那么在你正则的首加上^尾加上$.

静乐县18896606543: 正则表达式是什么意思 -
辕聪唐林: 正则表达式是搜索、替换和解析复杂字符模式的一种强大而标准的方法.如果你曾经在其他语言(如Perl)中使用过它,他们的语法非常相似,那么你仅仅阅读一下re模块的摘要,大致了解其中可用的函数和参数就可以了.字符串也有很多方法...

静乐县18896606543: 正则表达式的引擎 -
辕聪唐林: 正则引擎主要可以分为两大类:一种是DFA,一种是NFA.这两种引擎都有了很久的历史(至今二十多年),当中也由这两种引擎产生了很多变体!于是POSIX的出台规避了不必要变体的继续产生.这样一来,主流的正则引擎又分为3类:一、...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网