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

介绍

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

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


历史

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

一、数学抽象

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

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

二、工程实践

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

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

扩展

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

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

  • 正则语言------能被有限自动机识别
  • 正则文法------产生正则语言的文法
  • 正则表达式------描述正则语言的表达式
    其中正则文法⇔有限自动机⇔正则表达式
相关推荐
m4Rk_1 小时前
【论文阅读】Agent 记忆机制(97):MCMA——让 Agent 学会如何抽象记忆,实现跨任务经验迁移
论文阅读·人工智能·学习·开源·github
晓德2 小时前
7、LLM 模型是怎么训练生成的?(4)指令微调
人工智能·学习·算法·信息安全
ljt27249606612 小时前
Vue笔记(十三)--mixin
vue.js·笔记
问天_观心2 小时前
Mistral-7B QLoRA 实战(二):官方权重转换、4-bit NF4 加载与 Base Model 基线测试
人工智能·深度学习·学习·大模型·transformer
启观川2 小时前
数据结构与算法 -第 3 章 常用算法-回溯算法
数据结构·笔记·python·算法
andrsted2 小时前
练题簿在线免费刷题:选择、填空、简答与排序,多种题型练出不同的掌握程度
学习·微信小程序·小程序·学习方法·刷题
乌暮2 小时前
# Spring 入门与 Spring MVC 实战指南:从零理解 IoC 到 RESTful 图书管理
java·开发语言·后端·学习·spring·mvc·restful
小弥儿2 小时前
PPT Master:用 AI 把PDF/Word一键转成可编辑 PPT
学习·开源·github
启观川10 小时前
数据结构与算法 -第 3 章 常用算法-动态规划
数据结构·笔记·python·算法