自己感觉已经在正则上登堂入室了,终于也能体会到它的独特魅力和强大.
而回头再想总结一下,却发现其实没有什么特别的诀窍来掌握和学习它.
能总结的就几点体会.想要真正的体会正则的强大那只有...
1.理解其运行原理.
2.掌握特定语言的特定用法.
好像除了以上两个感触外还真想不到别的了.
不了解其运行原理就不知道各元素之间的合作,不了解合作就不能写出随心所欲的正则.
只有理解了运行原理,才能进一步的进行效率优化和正则变型.
不想写出长篇大论,那个书本的义务,只是想表达了解正则世界后的愉悦却找不出合适的修辞词.
至于为什么要理解运行原理,是因为当前的正则分两种引擎,NFA和DFA,一个是以文本为主导,一个是以表达式为主导.
以文本为主导的正则优点是运行快,几乎是没有当机的可能.但缺点也很明白,没有优化的可能,也少了很多的元字符,少了编写者的灵活,能独立解决问题的环境少了
而以表达式为主导的正则优点是元字符多,给于编写者最大的灵活,能最大范围的独立解决问题,但缺点也很明显,功力不深的作者很容易被自己的正则所伤,容易出现效率低下或引起当机的可能
别的语言不去研究,就熟悉的JAVA和PERL,以及主流的一些PHP,C#,VB.NET等均是以NFA表达式主导为核心引擎的.
在真正进入了正则的世界后也才真正体会到了以前别人的一句话."在没有正则的日子是怎么过来的啊!".