在实际开发中 经常需要进行对字符串进行复杂的匹配查找替换等等操作,通过正则表达式可以方便实现字符串的复杂操作
正则表达式[a-z]表示a到z的任意字符
正则表达式[a-z]+表示由1个或多个a到z的字符组成
字符集合
[abc] 这是由abc三个字符中任意一个字符
[^abc] 除了abc的任意字符
[a-z] abc......z 中的任意一个字符
[a-zA-Z0-9] 这是a-z,A-Z,0-9中任意一个字符
[a-z&&[^bc]] a-z中除了b和c以外的任意一个字符 其中&&表示与的关系
预定义字符集
\d 任意一个数字字符 相当于0-9
\w 单词字符,相当于[a-zA-Z0-9_]
\s 空白字符,相当于[\t\n\cOB\h\r]
\D 非数字字符
\W 非单词字符
\S 非空白字符
数量词
X? 表示0个或者1个X
X* 表示0个或者任意多个X
X+ 表示1个到任意多个X(大于等于1个X)
X{N} 表示N个X
X{N,} 表示N个到任意多个X(大于等于N个X)
X{N,M}表示N个到M个X
示例 匹配邮政编码 六位数
[0-9][0-9][0-9][0-9][0-9][0-9] //第一种
[0-9]+{6} //第二种
\d{6} //第三种
边界匹配“^” 和“$”
“^” 表示字符串开始
“$”表示字符串结束
matches方法(正则表达式)将一个字符串与正则进行匹配
匹配成功返回true 否则为false
String email = "bjliyi@tarena.com.cn";
String reg = "^[a-zA-Z0-9_.-]+@([a-zA-Z0-9-]+\\.)+[a-zA-Z0-9]{2,4}$";
System.out.println(reg.matches(email));
使用split和replaceAll方法来匹配正则
String str = "s s b c d";
String sr = "[\\s]";
String[] s = str.split(sr);
System.out.println(Arrays.toString(s));
String str1 = "s+s-b*c=d";
String sr1 = "[\\+\\-\\*\\=]";
String[] s1 = str1.split(sr1);
System.out.println(Arrays.toString(s1)+"s1");
String str2 = "12556ds56d";
String sr2 = "[0-9]+";
str2 = str2.replaceAll(sr2,"数字");
System.out.println(str2);
equals方法和==之间的区别
==用于比较变量的值,可以应用于任何类型,如果用于引用类型比交的变量中存储的值(地址信息)判断两个变量是否指向相同对象
而equals是Object的方法,重写之后,可以用于比较两个对象的内容是否相等
原文:http://www.cnblogs.com/iostb/p/5521968.html