认识正则表达式

如果原来没有使用过正则表达式,那么可能对这个术语和概念会不太熟悉。不过,它们并不是您想象的那么新奇。

请回想一下在硬盘上是如何查找文件的。您肯定会使用 ? 和 * 字符来帮助查找您正寻找的文件。? 字符匹配文件名中的单个字符,而 * 则匹配一个或多个字符。一个如 'data?.dat' 的模式可以找到下述文件:

data1.dat

data2.dat

datax.dat

dataN.dat

如果使用 * 字符代替 ? 字符,则将扩大找到的文件数量。'data*.dat' 可以匹配下述所有文件名:

data.dat

data1.dat

data2.dat

data12.dat

datax.dat

dataXYZ.dat

尽管这种搜索文件的方法肯定很有用,但也十分有限。? 和 * 通配符的有限能力可以使你对正则表达式能做什么有一个概念,不过正则表达式的功能更强大,也更灵活。

正则表达式的早期起源

正则表达式的“祖先”可以一直上溯至对人类神经系统如何工作的早期研究。Warren McCulloch 和 Walter Pitts 这两位神经生理学家研究出一种数学方式来描述这些神经网络。

1956 年, 一位叫 Stephen Kleene 的美国数学家在 McCulloch 和 Pitts 早期工作的基础上,发表了一篇标题为“神经网事件的表示法”的论文,引入了正则表达式的概念。正则表达式就是用来描述他称为“正则集的代数”的表达式,因此采用“正则表达式”这个术语。

随后,发现可以将这一工作应用于使用Ken Thompson 的计算搜索算法的一些早期研究,Ken Thompson是Unix 的主要发明人。正则表达式的第一个实用应用程序就是 Unix 中的qed 编辑器。

如他们所说,剩下的就是众所周知的历史了。从那时起直至现在正则表达式都是基于文本的编辑器和搜索工具中的一个重要部分。

使用正则表达式

在典型的搜索和替换操作中,必须提供要查找的确切文字。这种技术对于静态文本中的简单搜索和替换任务可能足够了,但是由于它缺乏灵活性,因此在搜索动态文本时就有困难了,甚至是不可能的。

使用正则表达式,就可以:

测试字符串的某个模式。例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个信用卡号码模式。这称为数据有效性验证。
替换文本。可以在文档中使用一个正则表达式来标识特定文字,然后可以全部将其删除,或者替换为别的文字。
根据模式匹配从字符串中提取一个子字符串。可以用来在文本或输入字段中查找特定文字。
例如,如果需要搜索整个 web 站点来删除某些过时的材料并替换某些HTML 格式化标记,则可以使用正则表达式对每个文件进行测试,看在该文件中是否存在所要查找的材料或 HTML 格式化标记。用这个方法,就可以将受影响的文件范围缩小到包含要删除或更改的材料的那些文件。然后可以使用正则表达式来删除过时的材料,最后,可以再次使用正则表达式来查找并替换那些需要替换的标记。

转载于:https://www.cnblogs.com/Infinity/archive/2006/01/25/322975.html

微软的正则表达式教程(一):正则表达式简介相关推荐

  1. 58.最全正则表达式教程,最好正则表达式教程

    正则表达式是什么? 字符是计算机软件处理文字最基本的单位,可以是字母,也可以是数字,标点符号,空格,换行符,汉字等等. 字符串是0个或更多个字符的序列.文本也就是文字,字符串.说某个字符串匹配某个正则 ...

  2. java正则表达式教程_Java正则表达式教程及示例

    [感谢 @CuGBabyBeaR 的热心翻译.如果其他朋友也有不错的原创或译文,可以尝试投递到 ImportNew.] 当我开始我的Java职业生涯的时候,对于我来说正则表达式简直是个是梦魇.本教程旨 ...

  3. html正则表达式 数字,js的正则表达式教程 js 正则表达式 3位数字

    允许空格和~之间的字符但不包含# " ' & = < > ( ) % + \ ; $ | / 用eval转义,你现在reg是一个字符串 正确写法 var ch = &qu ...

  4. 正则表达式--教程一 简介(共三篇)

    正则表达式--教程二(语法):https://blog.csdn.net/alzzw/article/details/99470144 正则表达式--教程三(匹配规则及示例):https://blog ...

  5. 很好的正则表达式教程

    版本:v2.21 (2007-8-3) 作者:deerchao 来源:unibetter大学生社区 转载请注明来源 本文目标 如何使用本教程 正则表达式到底是什么? 入门 测试正则表达式 元字符 字符 ...

  6. 正则表达式--教程二(语法)

    正则表达式--教程一 简介(共三篇):https://blog.csdn.net/alzzw/article/details/99463959 正则表达式--教程三(匹配规则及示例):https:// ...

  7. Java正则表达式教程大全

    转自: Java正则表达式教程大全 Java正则表达式教程大全 在Java代码中,如果你想使用正则表达式,需引入包 java.util.regex,       Java代码中的正则表达式同其它语言的 ...

  8. Stata:正则表达式教程

    全文阅读:Stata:正则表达式教程| 连享会主页 目录 1. 简介 2. 基本设置 2.1 深色模式 2.2 历史记录 2.3 内存设置 2.4 图像窗口 2.5 数据签名 2.6 添加注释 2.7 ...

  9. python中的正则表达式语法_Python基础教程之正则表达式基本语法以及re模块

    什么是正则: 正则表达式是可以匹配文本片段的模式. 正则表达式'Python'可以匹配'python' 正则是个很牛逼的东西,python中当然也不会缺少. 所以今天的Python就跟大家一起讨论一下 ...

  10. python正则表达式语法-python正则表达式语法大全讲解教程实例一

    东尧爱分享 这是东尧每天一篇文章的第32天 东尧写文章的目标:分享东尧的经验和思考,帮你获取物质和精神两方面幸福. 在python爬虫中,我们经常会需要进行字符串的匹配,而正则表达式是一种用来匹配字符 ...

最新文章

  1. 力挺Python!同是程序员,为啥同事年前就实现了财务自由?
  2. 百分点大数据技术团队:数据治理“PAI”实施方法论
  3. STM32的RTC简单操作
  4. android debug bridge tools_如何优雅的管理多环境下的Android代码
  5. HTML5 file api读取文件的MD5码工具
  6. 对flex深入研究一点
  7. Hibernate Collection乐观锁定
  8. Oracle传输表空间介绍
  9. 哪些程序员在围观 996.ICU?Python 爬取 40000 条 GitHub 数据告诉你!
  10. 第二届ATI获奖自动化测试工具介绍
  11. windows禅道官网地址及环境搭建
  12. 管道泄漏监测系统分布式光纤测温技术方案
  13. jquery日历插件 途牛_jQuery日历插件FullCalendar中文版
  14. sort目标跟踪算法
  15. 这-96到底是个什么东西?
  16. Flashback Oracle文档阅读
  17. javascript设计模式-模块模式(module pattern)
  18. 寻找鲁菜——美食江山寻味记之二·舜和品味
  19. docker搭建fabric
  20. 实验六 图的遍历操作及应用

热门文章

  1. HTML+CSS+JS实现 ❤️简单的翻纸牌记忆游戏❤️
  2. 代码合并工具_11个代码质量审核和管理工具,程序员必备!
  3. mysql查询去年本月的数据_MySQL查询本周、上周、本月、上个月份数据的sql代码...
  4. C++ 读取结束的判断
  5. Spring Boot html页面解析之jsoup
  6. IDEA常用快捷键大全
  7. python 生成图片_python生成带有表格的图片
  8. java集合基础_java常用集合基础知识
  9. 【youcans 的 OpenCV 例程200篇】125. 形态算法之提取连通分量
  10. 我的Go+语言初体验——(7)Go+ 分数型有理数数据类型