正则表达式的基础施用实例

正则表达式的基础应用实例
package com.hzp.reg;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Reg1 {
public static void main(String[] args){
String s1="123456789";
String s2="abcdefg";
String s3=" 12ab";
String s4="12 abc";
String s5="172.16.109.56";
String s6="hzp_168@126.com";
String s7="\\";

//字符串匹配用法
show(s1.matches("\\d{0,9}"));//匹配最多9个数字
show(s1.matches("\\d+"));//匹配多个数字
show(s2.matches("[a-z]*")); //匹配一个小写字母
show(s2.matches("[a-z]{1,7}")); //匹配首字符为小写字母
show(s2.matches("\\w+"));
show(s2.matches("\\w.\\w*"));
show(s3.matches("\\s.\\w*"));
show(s3.matches("\\s.\\d+\\w+"));
show(s3.matches("^\\s.*"));
show(s4.matches("^1.*c$")); //以1开头c结尾的字符串
show(s4.matches("\\w*2\\b.*"));
show(s4.matches("\\d*\\s*[a-c]*c\\b"));
//ip模糊匹配,严格匹配的话是逐个判断,每个控制在255内的有效数字
show(s5.matches("[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}"));
show(s6.matches("[\\w[.-]]+@[\\w[.-]]+\\.\\w+"));//邮箱匹配
show(s7.matches("\\\\"));//因为转义的缘故,正则表达式匹配“\”符要使用4个“\”

//预编译的正则表达式用法
Pattern p=Pattern.compile("\\d*");//预编译正则表达式
Matcher m=p.matcher("213212312"); //匹配的字符串
show(m.matches()); //进行匹配

/**利用正则表达式替换字符串用法**/

//替换所有的java为大写形式
String rs1="java Javakasjdfkj jAva JAva sjdfkjsjava";
show(rs1.replaceAll("java","JAVA"));//大小写不敏感的替换

//大小写敏感的替换
show(rs1.replaceAll("(?i)(java)","JAVA"));

//大小写敏感的替换
Pattern p2=Pattern.compile("java",Pattern.CASE_INSENSITIVE);
Matcher m2=p2.matcher("java Javakasjdfkj jAva JAva sjdfkjsjava");
show(m2.replaceAll("JAVA"));

//分组,正则表达式里一对()号表示一个匹配的分组
Pattern p3=Pattern.compile("([0-9]{3})([a-z]{2})");
Matcher m3=p3.matcher("123av-147dc-125adbc");
while(m3.find()){
show(m3.group());
}
//显示分组部分内容
m3.reset();
while(m3.find()){
show(m3.group(1));
}
m3.reset();
while(m3.find()){
show(m3.group(2));
}
}

public static void show(Object o){
System.out.println(o);
}
}