深入入门正则表达式(java) - 引言
深入入门正则表达式(java) - 引言 深入入门正则表达式(java) - 1 - 入门基础 深入入门正则表达式(java) - 3 - 正则在java中的使用 深入入门正则表达式(java) - 匹配原理 - 1 - 引擎分类与普适原则 深入入门正则表达式(java) - 匹配原理 - 2 - 回溯 本系列将带新手入门,之所以叫深入入门,就是想和网上的各种教程区分 正则总得来说虽然是简单,但是也不是30分钟就能搞定的事情。 内容是自己曾经积累的知识总结和书本的提炼:比如《精通正则表达式》 - 中文版第三版 整理过程中难免有错误,可能是笔误也可能是…… 顺序是 1.基础知识 2.基本实例 3.java中的正则使用 4.匹配原理 5.技巧与优化 6.android中的正则 使用的测试工具是RegexBuddy 工具比较强大,可以模拟多种语言的正则,而且还支持正则中的debug 正则表达式的作用主要体现在字符串的查找与替换上。 比如我现在做的android开发,调试的时候总是有大量log,没等你看清内容是什么呢新log就把旧log挤掉了,log中夹杂了大量你不关心的内容,于是我经常在adb logcat后面加上grep保证只留下我希望看到的内容。 我相信大家在开发过程中肯定遇到过下面的情况:你想查找的内容并不是很确定 举个简单例子:比如你想找hate和like,文本中这样的字符串不多,一次都列出来的话你也很容易能应付过来,所以你并不希望自己要查询两次,那么可以用正则,如果是大写,你也希望匹配,那么也可以用正则…… 这样的例子很多,下面我们就从最基础的内容开始,希望大家有点耐心 ps:我非常反对从网上复制“常用”正则之类的内容,首先写这个的人是为了当时自己的需求而写,比如人家匹配电话是4位区号-7位电话,而之后电话号码升到8位了,于是你的正则就不灵了。这还是好的情况{7}改成{8}就行了,即使程序出了问题不会正则也能猜出来修改哪里。刚才随便在网上搜了一下 “常用正则”,于是发现一个人如下写到 ^[0-9]*[1-9][0-9]*$ //匹配正整数 这有很多问题 首先它匹配到的确实是正整数,但是可能会匹配到01这样的类型,我想很多人不希望这样吧 前面的[0-9]*完全多余 还有一个例子 ^((-d+)|(0+))$ //匹配非正整数(负整数 + 0) 我不知道为什么这个人要加这么多括号,这样只会拖慢程序的速度,起码最里面的两个括号我想不到什么理由加上 不举例了,相信大家在复制的过程中都遭遇过尴尬 下面开始正题 在有java示例的时候几乎都要引入如下几个类,之后不再赘述。 import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.regex.PatternSyntaxException; 深入入门正则表达式(java) - 引言 未完待续 转贴请保留以下链接 本人blog地址 http://su1216.iteye.com/ http://blog.csdn.net/su1216/ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |