您的位置:首页 > 其它

30分钟正则表达式

2016-05-23 23:39 176 查看
在实际开发中 经常需要进行对字符串进行复杂的匹配查找替换等等操作,通过正则表达式可以方便实现字符串的复杂操作

正则表达式[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的方法,重写之后,可以用于比较两个对象的内容是否相等
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: