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

原创 2004年06月30日 13:52:00

认识正则表达式

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

请回想一下在硬盘上是如何查找文件的。您肯定会使用 ? 和 * 字符来帮助查找您正寻找的文件。? 字符匹配文件名中的单个字符,而 * 则匹配一个或多个字符。一个如 '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 格式化标记。用这个方法,就可以将受影响的文件范围缩小到包含要删除或更改的材料的那些文件。然后可以使用正则表达式来删除过时的材料,最后,可以再次使用正则表达式来查找并替换那些需要替换的标记。

看一遍就完全搞定的正则表达式教程

[原创文章,转载请保留或注明出处:http://www.regexlab.com/zh/regref.htm] 引言     正则表达式(regular expression)就是用一个“字符串”...
  • random0708
  • random0708
  • 2017年05月04日 15:57
  • 1407

微软的正则表达式教程

  • 2008年12月04日 16:22
  • 11KB
  • 下载

微软的正则表达式教程(二)

微软的正则表达式教程(二):正则表达式语法和优先权…正则表达式语法一个正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式。该模式描述在查找文字主体时待匹配的一个或...
  • ismezy2002
  • ismezy2002
  • 2006年11月27日 12:50
  • 660

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

认识正则表达式 如果原来没有使用过正则表达式,那么可能对这个术语和概念会不太熟悉。不过,它们并不是您想象的那么新奇。 请回想一下在硬盘上是如何查找文件的。您肯定会使用 ? 和 * 字符来帮助查找您正寻...
  • laily
  • laily
  • 2004年06月30日 13:52
  • 10711

正则表达式语法简单教程

正则表达式 - 语法 正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串...
  • luomoBM
  • luomoBM
  • 2016年10月18日 16:55
  • 103

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

认识正则表达式如果原来没有使用过正则表达式,那么可能对这个术语和概念会不太熟悉。不过,它们并不是您想象的那么新奇。请回想一下在硬盘上是如何查找文件的。您肯定会使用 ? 和 * 字符来帮助查找您正寻找的...
  • freexploit
  • freexploit
  • 2005年12月10日 22:24
  • 1252

微软的正则表达式教程(一)

微软的正则表达式教程(一):正则表达式简介认识正则表达式如果原来没有使用过正则表达式,那么可能对这个术语和概念会不太熟悉。不过,它们并不是您想象的那么新奇。请回想一下在硬盘上是如何查找文件的。您肯定会...
  • ismezy2002
  • ismezy2002
  • 2006年11月27日 12:53
  • 602

正则表达式入门

  • 2015年05月05日 15:18
  • 489KB
  • 下载

正则表达式:入门1.1

正则表达式入门1.1
  • HUSHILIN001
  • HUSHILIN001
  • 2017年05月30日 17:29
  • 161

微软的正则表达式教程(三)

微软的正则表达式教程(三):字符匹配   ...
  • ismezy2002
  • ismezy2002
  • 2006年11月27日 12:48
  • 567
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:微软的正则表达式教程(一):正则表达式简介
举报原因:
原因补充:

(最多只允许输入30个字)