大家好,我是IT修真院深圳分院第4期学员,一枚正直善良的JAVA程序员。
今天给大家分享一下,修真院官网JAVA任务3中,深度思考部分的知识点——正则表达式
一、背景介绍
发明BSD、TCP/IP、csh、vi和NFS的SUN首席科学家Bill Joy说过,在计算机体系结构领域里,缓存是唯一称得上伟大的思想的。其他的一切发明和技术不过是在不同场景下应用这一思想而已。在计算机软件领域里,情形也大体相似。如果罗列这个领域的伟大发明,绝对不超过二十项。这些包括分组交换网络、WEB、lisp、哈希算法、UNIX、编译技术、关系模型、面向对象、XML这些大名鼎鼎的家伙,而正则表达式绝对不应该被漏掉。
如今正则表达式已经成为几乎所有语言中的必备元素:JAVA、Perl、Python、PHP、Ruby————我们要问的不是什么语言支持正则表达式,而是什么语言不支持正则表达式。而一些功能强大的编辑器如notepad++、sublime 、Atom也全都支持正则表达式。正则表达式究竟能干什么呢?为什么会有那么大的魅力?我们往下看
二、知识剖析
元字符:起匹配、标记作用的特殊字符
匹配:将符合的结果返回,相当于return ...
标记:将符合的结果作为条件,相遇if(...)
"b" 标记的单词的开头和结尾,即是空格、逗号、句号等符号
"d" 匹配的是[0-9]的任一个数字
"{}" "X{3}"表示匹配连续的3个X
“.” 匹配的是除了换行符“n”的任意一个字符
"" "X"可以表示0个或无数个X
“s” 表示匹配一个空格
"S" 表示匹配一个不是空格的任意字符
零宽断言(标记类型,不返回结果)
(?=check) “X(?=check)”如果X后面跟着check,则匹配X()
(?<=check) "(?<=check)X"如果X前面有check,则匹配X
注:check可以是任何你写的出的东西
三、常见问题
1.读不懂,也不想读正则表达式怎么办?
2.正则表达式的标准并不统一,JAVA上能用的Python并不一定能用,怎么办?
四、解决方案
1.读不懂,也不想读正则表达式怎么办?
普通人有三件东西看不懂:医生的处方,道士的鬼符,程序员的正则表达式
哪怕是一个精通正则表达式的人要读懂一大段正则表达式也很费力,因为正则表达式是只写的(write-only)。很多时候,写完三分钟,立马就不读懂了
但是——非要读不可的话,可以使用可视化工具
刚才演示用的神器————RegexBuddy
2.正则表达式的标准并不统一,JAVA上能用的Python并不一定能用,怎么办?
神器regexBuddy再次出场!具有不同语言间的正则表达式互相转换功能,甚至还能帮你直接把实现正则表达式的代码写出来!
五、编码实战
六、扩展思考
七、参考文献
1.博客http://www.cnblogs.com/deerch...
2.《精通正则表达式》
八、更多讨论
详见视频:视频链接
PPT链接:
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。