码迷,mamicode.com
首页 > 其他好文 > 详细

30分钟正则表达式

时间:2016-05-24 00:29:21      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:

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

正则表达式[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的方法,重写之后,可以用于比较两个对象的内容是否相等

 

30分钟正则表达式

标签:

原文地址:http://www.cnblogs.com/iostb/p/5521968.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!