工作两年(三)--进入Regular Expression的世界

原创 2005年04月29日 22:20:00

已经不记得第一次听说正则表达式是什么时候了,但是计算理论课让我对它有了一定的理解。而真正在实践中用到,还是从半年前开始,接手同事用Perl写的一个测试框架,那时其实一点Perl程序都不会写,就这样一点一点学起来,后来发现写Perl程序就是在构造一个个正则表达式,把字符串分解,然后再重新组合。

相对于编译器和emacs来说,我接触正则表达式的时间更短,而且相对于前两者来说,后者的资料更难找,所以学起来也更困难。后来听同事说有本《Mastering Regular Expression》,已经出到第二版了,不过国内没有卖的,正好他当时要去美国出差,就托他帮我带一本回来。拿到书时我感到很惊讶,在我看来概念简洁的正则表达式居然要用这么厚(496页)的一本书来讲解。书中的一段话解释了我的困惑,原来,实践中的正则表达式是基于理论的一种扩展,甚至已经跳出理论的框架,并非正则了。只不过没人为这个新发明的东西命名,仍然叫它正则表达式。由于变种很多,要讲清楚它们之间的相同和不同点,就很不容易。

这是一本相当好的书,将我一点点引入美妙的正则表达式的世界。每当我建立起信心,自以为已经学会了按照正则表达式的方式思考时,作者就会用一个精妙的例子教育我“路还长着呢”!可以说,正则表达式为我打开了一扇门,让我以一个全新的角度看待文本,它们已经不仅仅是一串字符流,而且拥有一定的结构,可以对其进行分解、提取和加工。那种感觉,大概就像在外科医生眼里,病人已经不再浑然一体,而是一个各个组织有机结合形成的系统。学习正则表达式让我明白了,打印信息也是有学问的,要巧妙地设计布局,使得输出信息方便地被正则表达式处理,这样可以使很多工作自动化,减少工作中的负担。

除了Perl之外,还有很多程序支持正则表达式,emacs就是其中一个。在了解正则表达式之前,我几乎没有用过任何涉及到这方面内容的功能,后来才发现,我忽略的,是一座宝藏。

书还没有读完,学习更要继续,今后要多加实践,而且打算在熟练运用的基础上再看几种正则表达式处理引擎的程序,加深理解。

正则表达式(Regular Expression)基本语法

一、简介 为什么需要正则表达式? 文本的复杂处理正则表达式的优势和用途? 一种强大而灵活的文本处理工具; 大部分编程语言、数据库、文本编辑器、开发环境都支持正则表达式。正则表达式定义: 正如...
  • scgaliguodong123_
  • scgaliguodong123_
  • 2015年04月29日 22:00
  • 4115

10. Regular Expression Matching(很重要!!!)

Implement regular expression matching with support for '.' and '*'. '.' Matches any single character...
  • gao1440156051
  • gao1440156051
  • 2016年08月15日 17:15
  • 756

转贴 Regular Expression 简介(正则表达式)

引用:Regular Expression 简介 中央研究院计算中心 ASPAC 计划 aspac@phi.sinica.edu.tw 技术报告: 94019 1995 年 2 月 9 日 Vers...
  • chj90220
  • chj90220
  • 2012年12月09日 22:20
  • 1334

正则表达式 Regular Expression

重新整理记录一下正则规则 定义 Regular Expression - 正规的/有规律的表达式,是计算机科学的一个概念。使用一个字符串来描述、匹配一系列符合某个句法规则的字符串 最...
  • u010297957
  • u010297957
  • 2016年04月05日 17:06
  • 684

【LeetCode010算法/编程练习C++】Regular Expression Matching//挺烦的一条……

10. Regular Expression Matching Total Accepted: 113015 Total Submissions: 481908 Difficulty: ...
  • zmdsjtu
  • zmdsjtu
  • 2016年12月27日 16:09
  • 544

[LeetCode][10]Regular Expression Matching解析 -Java实现

Q: Implement regular expression matching with support for '.' and '*'. '.' Matches any single ...
  • u014629433
  • u014629433
  • 2016年06月11日 14:38
  • 1954

工作两年(七)——进入工作的世界

我的一个越来越坚定的信念是,不想做管理,只想写写程序。但是,这并不意味着不需要去学编程以外的知识,Joel就推荐学微观经济学。我就曾经阅读过《竞争战略》一书,写下一些心得,作为“程序员,你的路好走吗?...
  • netcasper
  • netcasper
  • 2005年08月23日 19:15
  • 2173

leetcode 10: Regular Expression Matching 分析及解答

解读: •‘.'代表一个任意字符,与其附近的字符无关 •’*‘代表o个或者多个前面的字符,该字符影响前面字符的“存在”,例如:a*={ε,a,aa,aaa,…},即当"*"表示0个前面的字符时,该字符...
  • u012150792
  • u012150792
  • 2016年07月22日 20:56
  • 361

10. Regular Expression Matching-动态规划/递归回溯

mplement regular expression matching with support for '.' and '*'. '.' Matches any single character...
  • u011567017
  • u011567017
  • 2016年09月11日 21:40
  • 597

Java正则表达式(Java Regular Expression)

也不知道是谁首先将Regular Expression翻译成了"正则表达式"这么一个文诌诌的名词。无论是按字面还是按其用途,Regular Expression都应该是规则表达式,指对特定字符串构成规...
  • asware
  • asware
  • 2012年04月22日 15:11
  • 6417
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:工作两年(三)--进入Regular Expression的世界
举报原因:
原因补充:

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