正则表达式学习笔记-01 正则表达式的来源

介绍

正则表达式 (Regular expression)是一种描述字符串匹配模式的工具,是一门跨语言的通用技术,主要用于对文本进行校验、查询、替换操作。

概念:它对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个"规则字符串",这个"规则字符串"用来表达对字符串的一种过滤逻辑。


历史

正则表达式的出现分为两个阶段:现有数学理论,后有工程实践

一、数学抽象

正则表达式最早来源于神经生理学研究,20世纪40年代,沃伦·麦卡洛克和沃尔特·皮茨 试图用数学来描述神经元的工作方式,建立了早期神经网络模型。

1956年,一位名叫斯蒂芬·克莱尼(Stephen Kleene)的数学家在麦卡洛克和皮茨早期工作的基础上,发表了一篇题为《神经网络中的事件表示》的论文,该论文引入了正则表达式的概念。正则表达式是用来描述他所称的"正则集代数"的表达式,因此得名"正则表达式"。

二、工程实践

60年代,肯尼斯·蓝·汤普森(Kenneth Lane Thompson)发现克莱尼 的研究成果可以用于文本模式匹配,所以将其用于早期的计算搜索算法研究中,并将其应用在UNIX的qed编辑器中。

从qed开始,正则表达式在计算机系统影响快速扩大,在极多应用中都有对应支持,如:Python、Java、JavaScript、PHP、Go、Shell、编辑器(VS Code、Vim)、数据库等。

扩展

正则表达式的正则来源于形式语言与自动机理论,应该理解为:能被有限自动机识别的语言,最早是描述正则语言的一种代数表示方法。

在形式语言中有以下基础概念:

  • 正则语言------能被有限自动机识别
  • 正则文法------产生正则语言的文法
  • 正则表达式------描述正则语言的表达式
    其中正则文法⇔有限自动机⇔正则表达式
相关推荐
songyuc4 小时前
【Manskill3】TableSceneBuilder学习笔记
pytorch·笔记·学习
外收内放4 小时前
Python基础语法练习题(75)
开发语言·python·学习
゛凌乱的记忆づ6 小时前
好用的md文件编辑器——TyporaS与Typora
笔记·git·typora·markdown
kyrie_sakura6 小时前
大模型学习20 大模型学习 - LangChain3 - Agents
人工智能·学习·langchain
zroooo6 小时前
计算机学习-知识庞大而繁杂
笔记·学习
坤坤子吖6 小时前
算法学习——单调队列
开发语言·c++·笔记·学习·算法
乌暮7 小时前
请求进门先安检:Spring 拦截器与统一功能实战指南
java·开发语言·后端·学习·spring
Zhao-Jichao8 小时前
AI Prompting for Everyone 课程笔记 - 05 使用深度搜索 Using Deep Research
人工智能·笔记
起个名字费劲死了8 小时前
Halcon学习一:骰子识别
前端·python·学习