aimingoo的专栏

.F{color:red}aimingoo

用户操作
[即时聊天] [发私信] [加为好友]
周爱民ID:aimingoo
398974次访问,排名129好友64人,关注者106
aimingoo的文章
原创 120 篇
翻译 0 篇
转载 0 篇
评论 687 篇
aimingoo的公告
新书出版:
china-pub在线购买
相关评论和文章

其它:
 相关评论和文章
 相关评论和文章
最近评论
fangzhe:补个漏,Safari是可以调脚本的,如果用的是开发版(从webkit.org来的Nightly Build),叫Drosera
ggloverv:对于初学者,会越看越难懂。
tgl10:显然,看lz的文章比看教材难懂...
难道你的书也像这篇文章这么卖弄
aimingoo:xiongjianxin520,

在IE下,可以用Microsoft Script Editor支持直接调试,包括断点、栈和表达式watch等,也可以使用VS.NET。方便的是,MSE是Office自带的。

在FireFox里,可以用FireBug。唯一有问题的是,FireBug不支持单步到eval(...)里面的代码调试。

……
aimingoo:shendl, hgk,

这个yeild,以及生成器等特性,是Mozilla支持的JavaScript 1.7以后才有的。在firefox里才能用。这里是关于JS高版本中的一些特性的介绍:
http://developer.mozilla.org/cn/New_in_JavaScript_1.7

ECMAScript 3的规范里没有这些特……
文章分类
收藏
    相册
    旅游
    我、joy与朋友们
    其它
    Hello World!
    ZDNet China软件技术专区
    我的链接
    aimingoo's 网上空地
    我的Delphi项目资源
    麦秸的垛
    我的朋友们
    kiki-玩java的国际游人
    Margaret
    叶卡-Online
    左左-网行者
    老孟-孟岩的孟
    存档
    订阅我的博客
    XML聚合  FeedSky

    原创 让leeon不再眷念马桶——书评《精通正则表达式》收藏

    新一篇: 再议《JavaScript代码优化一例》 | 旧一篇: 又见标题党——怒评《JavaScript核心技术》

    计算的世界大概都是由规则构成的。从最简单的二进制运算,到复杂的格式化文本,以及
    构建互联网络的各种协议,整个行业都在几十年如一日的定制、复制和客制化各种规则。
    在一切变得越来越复杂的时候,我们终于为“分析这些原本很有规则的数据”发了愁。因
    为规则多到一定程度的时候,也就湮没了规则本身。

    从一系列的数据中找到规则并描述这些规则的工具,是“正则表达式”——在早期,它确
    实就被译作“规则表达式”。更加重要的是,现今的各种语言内置了强大的正则表达式支
    持,使得这些“规则”可以被复用、编程,以及用于推理。当然,前提是你需要理解“规
    则表达式”自身的规则——那种象天书一样的符号集合。

    JavaScript之父曾经创建了一个项目,用一个(内嵌于JS引擎的)规则表达式的子集,实现
    了一套JavaScript的语法分析、执行的引擎:“在JS中实现的JS(JS implemented in JS)”。
    以分析150k代码为例,这个引擎大概需要8分钟。然而经过对正则表达式的优化,这可以降
    到8秒以下。我想,如果Brendan Eich也会用错正则表达式的话,大概没有太多的人能说自
    己精通正则表达式了。

    在这些不太多的人中,应该包括《精通正则表达式》的作者:Jeffrey E.F.Friedl。当我
    看到这本《精通正则表达式》时,我确信了我的这一观点。

    仔细地阅读这本大部头的书。我想,对于一个有一定经验的读者,这本书最大的价值在于:
     -让你有机会了解各种正则表达式的流派、起源与差异;
     -让你知道如何有效的优化和评估正则表达式性能;
     -让你精通正则表达式的各种细节和陷井。

    事实上,作为语言的使用者,上述这些正是通向精深至境的必由之路。语言之泛化源于种
    种环境的影响,却又宥于创生时的本质设定。有机会了解这些源初的设定,对于使用者来
    说,当是受益匪浅。而性能、细节与陷井,则是工程中排错调优的法宝,若有《精通正则
    表达式》这样的手册在侧,确是省了很多很多的功夫。

    对于作者来说,这本《精通正则表达式》最艰难之处大概是在内容的组织上。不管是初学
    者还是老手,都很难在正则表达式中找到一个好的学习起点。所幸的事,Jeffrey的确找到
    了这样的一个起点。本书的第一、二章会让读者在正则表达式的全然无序中找到一点点清晰
    印象。

    《精通正则表达式》一书的写法也是我非常之欣赏的。一直以来,向一个不懂或不太了解
    正则表达式的开发人员介绍正则表达式的原理,被认为是一项不可能完成的任务。然而在
    这本书中,作者使用了非常直观的图例,以至分析正则表达式时的一套完整的描述方法。
    所有复杂莫名的(例如perl中用来做嵌套的动态表达式)代码都被解释得一清二楚。

    另一方面,余晟的翻译也让我颇有好感。个人之见,读译作最麻烦之处在于一些名词上的
    不同翻译法,例如Interface何处译作“接口”与“界面”,便是一大难。很多译者在这样
    的问题上备受责难。侯捷先生以前的做法是在书稿前先说明,书稿后附一份对译表,以至
    于后来对译表成了一种标准的“侯氏译法”。另一些译者则选用比较便捷的方式,在通用
    的译法后面加注英文单词。余晟先生就采用了这样的译法,例如:“一系列字母和数字符
    号(alpha numeric characters)”。如果不采用这样的译法,我想中译版难有如此通顺。

    读书的时候,想起来朋友leeon。他总喜欢把书捧进厕所,以至于连《程序语言设计-实践
    之路》这样的大部头也被他归于“厕所书”之列。我一直以来想告诫他这是一种对生理和心
    理都不太好的习惯,但终于没这样做。因为对于一个顽固分子来说,改变他的习惯的唯一方
    式,是让他的习惯受到阻碍,而不是某种形式的箴言。

    好了,今天终于可以向他推荐这本《精通正则表达式》了。这是我唯一深信leeon不可能用
    很长的时间在马桶上阅读的书。因为复杂的正则会写得如同天书一般,而本书中那些浅显明
    了的解释,一定会让leeon有一种扼止不住的冲动,以至于要从马桶上弹射到计算机面前去写
    段代码来做做测试。

    当然,在弹射之前leeon还有一些手续性的工作要做。只是,我想,那根本不是这本书的作
    者所要考虑的问题。^.^


    又:
    -----

    不过,我并不满意Jeffrey用Egrep来作为正则初学者的示例。我甚至认为拿Windows平台的
    DOS命令行中的那个名为FindStr的小工具来做示例都不错。

    Jeffrey显然不是微软的fans,对正则表达式支持最好的perl语言也并不那么特别的亲近微
    软的平台。因此Jeffrey没有看到FindStr这样不起眼的小工具,大概也不是什么问题。只
    是对于读者来说,要找到一个名为Egrep的工具来做前两章的实验,可不是一件容易的事情。

    回到初学者的话题,我仍然建议初学者拿一个惯用的工具来做基本的测试。我分析源代码时
    习惯于使用grep(Turbo Grep, 随borland产品发布),这是一个不错的推荐,对于读者来说,
    用FindStr也不错。当然如果你所使用的语言支持正则表达式,并且你已经有一定的实用经
    验,那么这些建议你权当我没说。

    FindStr的基本使用:
    ----
    FindStr /R "<一个正则表达式>" *.txt

    grep的基本使用:
    ----
    grep -r+ "<一个正则表达式>" *.txt 

    发表于 @ 2007年08月21日 16:53:00|评论(loading...)|编辑

    新一篇: 再议《JavaScript代码优化一例》 | 旧一篇: 又见标题党——怒评《JavaScript核心技术》

    评论

    #jiangtao 发表于2007-08-21 22:24:01  IP: 210.82.111.*
    怎么没有评论,这确实是一本值得一看的好书.终于有中文版了
    #lovekatherine 发表于2007-08-22 00:06:34  IP: 202.113.25.*
    貌似这本书china-pub上还没有现货阿
    #janze 发表于2007-08-22 10:40:26  IP: 58.35.157.*
    egrep很容易得到的,有各种系统平台版本,如果知到用google的话.
    http://unxutils.sourceforge.net/ 下是native的windows版本。
    #janze 发表于2007-08-22 10:48:47  IP: 58.35.157.*
    没有看过此书,但是作者用egrep来做为例子是个不错的选择。egrep实现了标准的extended-regexp,标准而功能强大。如果使用perl,容易被perl的扩展所迷惑(例如"("的使用)且兼容性不好,如果用basic-regexp,则功能较弱,写某些东西会很繁复(例如没有+,会很烦恼)。一般有经验的regexp作者都会选择使用eregexp,以保障最大的兼容性和方便性的妥协。
    #janze 发表于2007-08-22 10:53:06  IP: 58.35.157.*
    ps:findstr是basic-regexp,如果本书使用egrep作为示例工具,请不要用findstr或者grep(无-E扩展的那种)来代替。以免事倍功半。
    #aimingoo 发表于2007-08-22 11:28:37  IP: 61.172.241.*
    楼上楼上~哈哈,我的意思只是一二章里头,对于基本的一些正则讲述的时候使用findstr或grep这种,可不是说全书。也并不建议读者对整本书学习的时候用哦。

    我自己也很少用findstr,基本都是用grep。我只是觉得,findstr是可以让初学者能快速上手的一个小工具,可能我没有说清楚哈。
    #CFRIEND2007 发表于2007-08-22 13:00:11  IP: 211.142.211.*
    是要看下,有货提醒下
    #orichisonic 发表于2007-08-22 20:50:07  IP: 58.34.102.*
    刚在得益网上找到这本书,是想拉下来好好看看
    在厕所看报纸慢慢在养成习惯了,看书还没有...
    #China-pub 发表于2007-09-14 16:35:34  IP: 123.112.101.*
    书已经上架,欢迎各位多提意见
    勘误发布在
    http://blog.csdn.net/bvbook
    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © aimingoo