c语言正则表达式_关于正则表达式,这篇都讲清楚了

本文详细介绍了正则表达式的起源、语法和匹配原理,重点探讨了DFA和NFA两种引擎的工作方式以及回溯的概念。通过实例解析,帮助读者深入理解正则表达式的运用,并推荐了相关书籍、博客和在线测试工具。
摘要由CSDN通过智能技术生成
9c4480c93a3f9d8a776d04b756334983.gif 852d7d802a7eb6e8ef7554de1d8525ef.png 作者 | 猪哥 来源 | 裸睡的猪(ID:rgznai100) 目前越来越多的网站、编辑器、编程语言都已支持一种叫“ 正则表达式 ”的字符串查找“公式”,有过编程经验的同学都应该了解 正则表达式(Regular Expression 简写regex)是什么东西,它是一种字符串匹配的模式(pattern),更像是一种逻辑公式。
使用正则表达式去匹配字符串Hello World 中的 Hello
伪代码:/Hello/, "Hello World"
输出:Hello
如何写好一篇关于  正则表达式 的文章,我思考了一周的时间,从未有一篇文章能让猪哥如此费神。 因为我觉得 正则表达式 :难记忆、难描述、广而深且不受重视,有人说正则表达式既好写也难写!
  1. 好写:无非写一些常用、实用的案例,说实话你们每个人都能写出这种:在网上百度一下然后结合一点自己的实际经验,一篇文章就出来了。

  2. 难写:很多人都认为正则简单,不用记,要用就百度一下。但是绝大多数人了解的只是正则的一个小面,真正的精髓却很少关注!

希望大家能知道正则的知识点其实非常非常多,尤其是 正则引擎执行原理以及正则优化 ,这算是正则表达式的进阶知识点,面试中也可能会被问到。 1a413ce1d7aa7c0508ad0e72aa521d62.png

027cd65ad8f0b744352430ffef5fd3ef.png

起源与发展

我们在学习一门技术的时候有必要了解其起源与发展过程,这对我们去理解技术本身有一定的帮助! 20世纪40年代:正则表达式最初的想法来自两位神经学家:沃尔特·皮茨与麦卡洛克,他们研究出了一种用数学方式来描述 神经网络的模型。 1956年:一位名叫Stephen Kleene的数学科学家发表了一篇题目是《神经网事件的表示法》的论文,利用称之为 正则集合的数学符号来描述此模型,引入了正则表达式的概念。正则表达式被作为用来描述其称之为“正则集的代数”的一种表达式,因而采用了“ 正则表达式”这个术语。 1968年:C语言之父、UNIX之父 肯·汤普森把这个“正则表达式”的理论成果用于做一些搜索算法的研究,他描述了一种正则表达式的编译器,于是出现了应该算是最早的正则表达式的编译器qed(这也就成为后来的grep编辑器)。 Unix使用正则之后,正则表达式不断的发展壮大,然后大规模应用于各种领域,根据这些领域各自的条件需要,又发展出了许多版本的正则表达式,出现了许多的分支。我们把这些分支叫做“ 流派”。 1987年:Perl语言诞生了,它综合了其他的语言,用正则表达式作为基础,开创了一个新的流派, Perl流派。之后很多编程语言如: Python、Java、Ruby、.Net、PHP等等在设计正则式支持的时候都参考Perl正则表达式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值