你不知道的正则表达式
作者:一想千开 日期:2009-03-22
1.正则表达式是怎么起源的?其实它最初的形成和计算机没有一点关系,而是20世纪中期,有两位神经学家提出了一种模型,他们认为人的大脑就是按照这种模型的方式来思维的.至于这件事的后话及结果我不知道也没太大的兴趣,只是,正则正是从他们这种模型上演变出来并应用到计算机编程中的.
2.正则现在是一个非常混乱的局面.在几十年的发展中没有一个标准来约束它,造成现在每个语言里的正则都不一样,同一流派的语言,在对正则的处理上也或多或少的存在着差异.同一个正则,在不同的语言里可能会得到截然不同的结果.NFA和DFA两大流派使用者截然不同的原理去实现它,在结果和速度上造成极大的差别,这给需要使用正则表达式的我们造成了不小的麻烦.
3.正则不是万能的,并不是任何文本正则都能匹配.在很多文本面前正则其实也是苍白无力的.举个简单的例子:正则就无法匹配不确定层数嵌套的括号.
4.点号(.)和星号(*)要慎重使用,如果不是必须的,请尽量不要使用这两个元字符而使用字符组和排除型字符组,否则你可能得到意想不到的结果.
5.使用正则表达式应该确切了解你的目标文本,尽量构造简介的正则,能达到你的目的即可,不要试图构造一个万能的正则,因为正则本身执行起来其实是很没有效率的,复杂一点点,其运算的次数可能会多出成千上百倍.如果你的正则只去执行一次倒也罢了,如果要处理大量的文本,这一点就非常重要,
6.不要以为正则就那么点内容几小时能学完没什么复杂的.不是这样的,曾经,我读过一篇<<十小时精通正则表达式>>掌握后便以为自己炉火纯青了,可是我后来系统地学习了一下后才发现,原来我只是掌握了一点点皮毛.现在越掌握的多,却越感觉还有更多没有了解.
上一篇
下一篇


文章来自:
Tags: