常用的正则表达式符号:
下面我们我们就来看几个常用的正在表达式:
1、IP地址的正则表达式:
public void checkIp(){
/**
* 格式:
* 前三位:
* 0到9
* 或者1到9,0到9
* 或者1,0到9,0到9
* 或者2,0到4,0到9
* 或者2,5, 0到5
* 后四位包括.,然后重复三位数字位:
* .
* 0到9, 0到9, 0到9
* 或者1, 0到9, 0到9
* 或者2, 0到4, 0到9
* 或者2,5, 0到5*/
String rexp = "([1-9]|"
+ "[1-9]\\d|"
+ "1\\d{2}|"
+ "2[0-4]\\d|"
+ "25[0-5])"
+ "(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3}";
Pattern pattern = Pattern.compile(rexp);
Matcher mat = pattern.matcher("192.0.0.0");
boolean b = mat.matches();
System.out.println(b);
}
2、中文字符检测:
public void checkChineseCharacter(){
Pattern p = null; //正则表达式
Matcher m = null; //操作的字符串
boolean b = false;
//正则表达式表示汉字的一串字符串
p = Pattern.compile("^[\u4e00-\u9fa5]+$");
m = p.matcher("直播吧");
b = m.matches();
System.out.println("中文名正确:"+b); //输出:true
//
p = Pattern.compile("^[\u4e00-\u9fa5]+$");
m = p.matcher("nick");//错误 只能是中文
b = m.matches();
System.out.println("中文名错误:"+b); //输出:false
}
3、邮件地址格式检测:
public void checkEmail(){
Pattern p = null; //正则表达式
Matcher m = null; //操作的字符串
boolean b = false;
//正则表达式表示邮箱号码
p = Pattern.compile("\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*");
m = p.matcher("user@test.com");
b = m.matches();
System.out.println("email号码正确:"+b); //输出:true
//
p = Pattern.compile("\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*");
m = p.matcher("user.test.com");//错误 @应为.
b = m.matches();
System.out.println("email号码错误:"+b); //输出:false
}
一个好的正则表达式的编写也是有难度的,编写之前必须要属性正则表达式的各个符号所代表的意思,如果需要对匹配进程操作,如:替换,截取,
获取固定位,则需要熟悉Matcher类中各个方法,使用正则表达式有时候会比用代码实现更加简洁高效,但是正则表达式没有经过严格测试也容易引
入bug,总之正则表达式很容易入门,但是一个好的正则表达式编写员也是很难练成的。