语言文学网-学术论文、书评、读后感、读书笔记、读书名言、读书文摘!

语文网-语言文学网-读书-中国古典文学、文学评论、书评、读后感、世界名著、读书笔记、名言、文摘-新都网

当前位置: 首页 > 读书指南 > 读书笔记 >

Mastering Regular Expressions读书笔记

http://www.newdu.com 2018-02-26 互联网 佚名 参加讨论

    正则表达式的“祖先”可以一直上溯至对人类神经系统如何工作的早期研究。warren mcculloch 和 walter pitts 这两位神经生理学家研究出一种数学方式来描述这些神经网络。1956 年, 一位叫 stephen kleene 的数学家在 mcculloch 和 pitts 早期工作的基础上,发表了一篇标题为“神经网事件的表示法”的论文,引入了正则表达式的概念。正则表达式就是用来描述他称为“正则集的代数”的表达式,因此采用“正则表达式”这个术语。
    涉及到了数据的解析,自然离不开对regular expressions(正则表达式)的温习;在jdk官方源码中看到了对《mastering regular expressions, 2nd edition》的推荐;由jeffrey e.f. friedl大师主刀,o'reilly于XX年再版。对o'reilly的书向有好感,像当年误入java的歧途,没看java编程思想之类的,倒看了o'reilly的一本影印版《java in a nutshell》,颇留记忆。
    随后,发现可以将这一工作应用于使用 ken thompson 的计算搜索算法的一些早期研究,ken thompson 是 unix 的主要发明人。正则表达式的第一个实用应用程序就是 unix 中的 qed 编辑器。
    目前,正则表达式已经在很多软件中得到广泛的应用,包括*nix(linux, unix等),hp等操作系统;php,perl,python,c#,java等开发环境,以及很多的应用软件中,for example:网络上的搜索引擎,数据库的全文检索etc...
    本笔记是是自我学习过程的一个整理,例子或来源于书本,或自己枚举。
    1、正则表达式的介绍
    1.1、行开始和结束
    ^begin line。匹配行开头,如^cat匹配以cat开头的
    $end line。匹配行结束,如cat$匹配以cat结束的;^cat$仅仅匹配该行有cat
    1.2、匹配给定的字符序列
    [...],表示in。里面写入欲匹配的几个字符,如,匹配seperate,separete,separate";匹配
    , etc.[a-z]代表从a到z中的任意字符,[0-9]、[a-z]分别代表0-9,a-z中的任意数字或大写字母;“-”代表连续的从开始字符到结束;那么[0123456789abcdefabcdef]也可以写为[0-9a-fa-f];对于这些频繁使用的字符,各语言分别做了相同的预定义:
    1.3、匹配非给定的字符(非...)
    [^]匹配,表示not。^和行开头的标记完全一样,但写的位置不一样,则表述的意思可能完全相反,用^表示否定的意思,更多是写在[]里面,如:q[^u]匹配q后面紧跟非u的字符,如iraqi,qasida,zaqqum,iraq;没错,"iraq"这个单词也会被匹配,尽管q后面什么也没有,也可能有个空格、或回车符等。否定字符的意思(翻译出来绕口):means "match a character that's not listed" and not "don't match what is listed."
    1.4、匹配任何字符
    .匹配,表示any。任何字符,如07.04匹配:07_04,07-04,07 04,07.04 etc;如想要精确匹配07/04,07-04,or 07.04;需要写07[-./]04;没错当.在[]里面包含的时候,仅仅表示“.”字符而已,如果不在[]里面,需要转义\\. 如匹配形如x.y的小数:是[0-9]\\.[0-9],而非[0-9].[0-9]
    1.5、匹配几个给定的字符序列中的一个
    |匹配,表示or。to be continued....
    别看它似乎很深奥,其实学起来很容易的。欢迎一起来探讨啊。
     (责任编辑:admin)
织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
评论
批评
访谈
名家与书
读书指南
文艺
文坛轶事
文化万象
学术理论