正则表达式 - 简介

除非您以前使用过正则表达式,否则您可能不熟悉此术语。但是,毫无疑问,您已经使用过不涉及脚本的某些正则表达式概念。

例如,您很可能使用 ? 和 * 通配符来查找硬盘上的文件。通配符匹配文件名中的单个字符,而 * 通配符匹配零个或多个字符。像 data?.dat 这样的模式将查找下列文件:

data1.datdata2.datdatax.datdataN.dat

使用 * 字符代替 ? 字符扩大了找到的文件的数量。data*.dat 匹配下列所有文件:

data.datdata1.datdata2.datdata12.datdatax.datdataXYZ.dat

尽管这种搜索方法很有用,但它还是有限的。通过理解 * 通配符的工作原理,引入了正则表达式所依赖的概念,但正则表达式功能更强大,而且更加灵活。

正则表达式的使用,可以通过简单的办法来实现强大的功能。下面先给出一个简单的示例:

^.+@.+\\..+$

继续阅读本教程将让您也可以自由应用这样的代码。

为什么使用正则表达式?

典型的搜索和替换操作要求您提供与预期的搜索结果匹配的确切文本。虽然这种技术对于对静态文本执行简单搜索和替换任务可能已经足够了,但它缺乏灵活性,若采用这种方法搜索动态文本,即使不是不可能,至少也会变得很困难。

通过使用正则表达式,可以:

测试字符串内的模式。例如,可以测试输入字符串,以查看字符串内是否出现电话号码模式或信用卡号码模式。这称为数据验证。替换文本。可以使用正则表达式来识别文档中的特定文本,完全删除该文本或者用其他文本替换它。基于模式匹配从字符串中提取子字符串。可以查找文档内或输入域内特定的文本。例如,您可能需要搜索整个网站,删除过时的材料,以及替换某些 HTML 格式标记。在这种情况下,可以使用正则表达式来确定在每个文件中是否出现该材料或该 HTML 格式标记。此过程将受影响的文件列表缩小到包含需要删除或更改的材料的那些文件。然后可以使用正则表达式来删除过时的材料。最后,可以使用正则表达式来搜索和替换标记。

发展历史

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

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

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

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

应用领域

目前,正则表达式已经在很多软件中得到广泛的应用,包括 *nix(Linux, Unix等)、HP 等操作系统,PHP、C#、Java 等开发环境,以及很多的应用软件中,都可以看到正则表达式的影子。

C# 正则表达式

在我们的 C# 教程中,C# 正则表达式 这一章节专门介绍了有关 C# 正则表达式的知识。

Java 正则表达式

在我们的 Java 教程中,Java 正则表达式 这一章节专门介绍了有关 Java 正则表达式的知识。

JavaScript 正则表达式

在我们的 JavaScript 教程中,JavaScript RegExp 对象 这一章节专门介绍了有关 JavaScript 正则表达式的知识,同时我们还提供了完整的 JavaScript RegExp 对象参考手册。

Python 正则表达式

在我们的 Python 基础教程中,Python 正则表达式 这一章节专门介绍了有关 Python 正则表达式的知识。

Ruby 正则表达式

在我们的 Ruby 教程中,Ruby 正则表达式 这一章节专门介绍了有关 Ruby 正则表达式的知识。

欢迎大家把关心的话题写在评论区,我会作为后续选题,希望创作出更多大家喜欢的内容。

正则表达式发明者_正则表达式 – 简介相关推荐

  1. python 正则表达式 前瞻_正则表达式 For Python

    Manarola 正则表达式有很多流派,也有很多的特性,不同的语言支持度也是不一样的.本篇文章是写Python中的正则表达式的用法的,介绍了一些可用特性,也指出了某些特性是不支持的. 本篇文章仅为学习 ...

  2. 正则表达式发明者_浅谈正则表达式背后的基本原理

    一.写在前面 搞编程的都知道正则表达式是什么东西,这里就不多啰嗦了,需要强调的是,这篇文章并不是教你怎么去使用用正则表达式,正则表达式的语法并不是本文的重点,这篇文章的目的就是剥开正则表达式的语法糖, ...

  3. 正则表达式发明者_【D1n910】正则表达式入门(三)

    正常操作,正常分析,大家好,我是D1n910. 最近又发生了一些很严重的事情,祥林嫂是可怜的,可是因为又祥林嫂的存在,让一些人可能不愿意向别人倾诉自己"悲惨"的经历了. 正则表达式 ...

  4. java 正则表达式效验_正则表达式(Java版整理)

    基础 元字符 代码 说明 . 匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线或汉字 \s 匹配任意的空白符 \d 匹配数字 ^ 匹配字符串的开始 $ 匹配字符串的结束 \b 匹配字符串的结束 ...

  5. JAVA正则表达式乘号_正则表达式基本语法

    首先,让我们看看两个特别的字符:'^' 和 '$' 他们是分别用来匹配字符串的开始和结束,一下分别举例说明 "^The": 匹配以 "The"开头的字符串; & ...

  6. java正则表达式逗号_正则表达式只匹配逗号而不是括号?

    保罗,复活了这个问题,因为它有一个未提及的简单解决方案.(在进行正则表达式赏金任务研究时发现了您的问题.) 此外,现有解决方案还会检查逗号后是否没有括号,但这并不能保证它会嵌入括号中. 正则表达式非常 ...

  7. java正则表达式空行_正则表达式删除空行

    我们的目标是要删除文本中的空行,可能一行也可能是多行. 所以,我的操作如下: 在此,我们匹配空行用的是 (\r\n)* 这样,就可以匹配多个空行,同时用null来替代,就可以实现删除空行.此方案是基于 ...

  8. notepad正则表达式替换_正则表达式装逼(实用)指南

    正则表达式(Regular Expression,或者Regex),能干嘛?听说很强悍,很多人用来查找字符串,或者替换某些字符串. 实际上,正则表达式有四个功能: 匹配,即查找,例如,从杂乱的一堆文本 ...

  9. python正则表达式试题_正则表达式练习题2

    1.匹配一行文字中的所有开头的字母内容 #coding=utf-8 import re s="i love you not because of who you are,but becaus ...

最新文章

  1. nvm、node、npm的安装
  2. 关于面向对象设计中类的方法是否应该使用boolean类型的参数
  3. 学生管理系统java mysql_学生信息管理系统 基于Java+mysql开发的学生管理系统 - 下载 - 搜珍网...
  4. android新架构,Android新架构组件 LifeCycles 简介
  5. 致毕业生:那些年我们错过的“BAT”
  6. 4 指针运算_C++用指针访问数组元素(学习笔记:第6章 08)
  7. jmeter使用_jmeter工具的使用
  8. python节日贺卡图片大全_新年贺卡图片_新年贺卡手工制作图片
  9. eq值 推荐算法_利用 SVD 实现协同过滤推荐算法
  10. 电控 应用层开发 学习_阿里巴巴如何改善开发人员在 K8s 上的体验?
  11. Java 基础面试题,java基础面试笔试题
  12. oracle undoautotune,Oracle 隐藏参数:_undo_autotune、一个吃力不讨好的活
  13. 21天Jmeter打卡Day14 监听器之查看结果树+断言结果+聚合报告+图形结果+表格查看结果
  14. 三菱GXWorks2 监视梯形图状态
  15. 什么是信道编码?信道编码比较
  16. WiFi过敏?没准是心病
  17. 翻译-你必须知道的28个HTML5特征、窍门和技术
  18. 学习笔记:SpringCloud 微服务技术栈_实用篇②_黑马旅游案例
  19. c 语言字体怎么改,Notepad++设置字体语言格式方法介绍
  20. Linux 学习网站汇总

热门文章

  1. Matlab中typecast函数由int8转换为int32
  2. Hadoop Streaming二次排序
  3. Python 可视化库
  4. 1号店11.11:从应用架构落地点谈高可用高并发高性能
  5. JVM源码分析之javaagent原理完全解读--转
  6. Can't access RabbitMQ web management interface after fresh install
  7. Google和Baidu常用的搜索技巧--转
  8. svn 合并分支代码到主干
  9. 【风控体系】携程基于大数据分析的实时风控体系
  10. BERT却不懂Transformer?2021