关于 Java正则表达式中的Possessive数量修饰词的理解 正则表达式对于数量限定符如 ?, + , *, {n, m} 的匹配默认是贪婪模式,比如: a.*b   匹配 acbab 的结果是 acbab 而不是acb 正则表达式支持懒惰模式,也就是在数量限定符后加一个数量修饰词(quantifier),用问号表示, 比如: a.*?b 匹配 acbab 的结果是 acb 而不是acbab   而Java语言在正则表达式中支持一种Possessive 数量修饰词 ,用加号表示.其字面意思是…
要弄清这三个方法,首先要弄清Java正则表达式中的捕获组的概念.捕获组也就是Pattern中以括号对“()”分割出的子Pattern.至于为什么要用捕获组呢,主要是为了能找出在一次匹配中你更关心的部分.捕获组可以通过从左到右计算其开括号来编号.例如,在表达式 "(x)(y\\w*)(z)" 中,存在三个这样的组:  1.  x2.  y\\w*3.  z组零始终代表整个表达式.之所以这样命名捕获组是因为在匹配中,保存了与这些组匹配的输入序列的每个子序列.捕获的子序列稍后可以通过 Bac…
在一个类的内部,其成员(包括成员变量和成员函数)能否被其他类所访问,取决于该成员的修饰词.Java的类成员访问权限修饰词有四类:private,无(默认情况下),protected和public.其权限控制如下表所示: 修饰词 本类 同一个包的类 继承类 其他类 private √ × × × 无(默认) √ √ × × protected √ √ √ × public √ √ √ √ 其中,默认情况下没有任何修饰词,这样的类成员具有“包访问权”,即位于同一个包中的类对其有访问权:而protec…
原来正则表达式中的"."代表的是除换行以外的任意字符,如果要真正代表任意字符,需要把换行符也加进去,但是经过测试"[.\\n]"不生效,可以使用"\\s\\S"代表,即所有空字符+所有非空字符. 注:为了适用于java程序,上述表达式已把斜杠替换成双斜杠.…
测试代码: // Human.h代码 @interface Human : NSObject @property (nonatomic, weak) Cat *pinkCat; @property (nonatomic, unsafe_unretained) Cat *blackCat; @end // ViewController.m // 声明属性 @property (nonatomic, strong) Human *human; Cat *blackCat = [[Cat alloc]…
有时候我们需要匹配反斜杠,你可能会把对应的正则表达式写成 "\\" 然后可能会有如下输出: Exception in thread "main" java.util.regex.PatternSyntaxException: Unexpected internal error near index 1 \ ^ ..... 可能这个问题对于初学者来说比较头疼,但是只要别人一点可能就明白了. JAVA中匹配反斜杠的正则表达式的书写方式为: String regex=&q…
假如现在有一个需求,要你用Java语言来匹配出一个文本里面的所有(英文半角)标点符号,你会怎么写呢?我想大多数人应该是把这些符号都罗列出来, 如: !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ 但[!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~]这样写需要转义一下, 结果为: [-!"\#\$%&'()*+,./:;<=>?@   \^_`\{\|\}~] 然后写到java代码后…
众所周知,Java编程语言在IT行业是企业中不可缺少的.不管,从Web应用到Android应用,这款语言已经被广泛用于开发各类应用及代码中的复杂功能.但在编写代码时,bug永远是困扰每一位从业者的头号大难题.今天就与大家分享几个关于减少Java开发中的bug数量的最佳实践方法,希望能给大家带来一些帮助. 不要依赖初始化 在Java编程中,开发者常常依赖构造函数进行对象初始化.不过这其实是一种常见误区.我们完全可以在无需调用构造函数的情况下,通过多种方式实现对象分配.比如说:将所有变量声明为私有,…
由于工作原因,一直没有时间把在线上遇到的问题总结一下.还好,今天我来了. 废话少说了. 主要说一下“java 正则表达式中的一个漏洞”,详细问题描述 http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6988218 http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5050507 目前使用 1.6 和 1.7 都没有修补该漏洞. 来个白话文吧 案例代码 Test.java final Patt…
http://lavasoft.blog.51cto.com/ http://lavasoft.blog.51cto.com/62575/179324      Java正则表达式应用总结   一.概述   正则表达式是Java处理字符串.文本的重要工具.   Java对正则表达式的处理集中在以下两个两个类: java.util.regex.Matcher   模式类:用来表示一个编译过的正则表达式. java.util.regex.Pattern   匹配类:用模式匹配一个字符串所表达的抽象结…