通配符^
^表示模式的开始,如^he匹配所有以he开头的字符串.
例程:
 String[] dataArr = { "he", "hero", "here", "hitler"};
    for (String str : dataArr) {
      String patternStr = "(^he)(\\w*)";
      boolean result = Pattern.matches(patternStr, str);
      if (result) {
        System.out.println("字符串" + str + "匹配模式" + patternStr + "成功");
      } else {
        System.out.println("字符串" + str + "匹配模式" + patternStr + "失败");
      }
    }
通配符$
$表示模式的结束,如ia$匹配所有以ia结尾的单词.
 String[] dataArr = { "ia", "Asia", "China", "Colonbia","America"};
    for (String str : dataArr) {
      String patternStr = "(\\w*)(ia$)";
      boolean result = Pattern.matches(patternStr, str);
      if (result) {
        System.out.println("字符串" + str + "匹配模式" + patternStr + "成功");
      } else {
        System.out.println("字符串" + str + "匹配模式" + patternStr + "失败");
      }
    }
通配符{}
除了用+表示一次或多次,*表示0次或多次,?表示0次或一次外,还可以用{}来指定精确指定出现的次数,X{2,5}表示X最少出现2次,最多出现5次;X{2,}表示X最少出现2次,多则不限;X{5}表示X只精确的出现5次.
例程:
String[] dataArr = { "google", "gooogle", "gooooogle", "goooooogle","ggle"};
for (String str : dataArr) {
 String patternStr = "g(o{2,5})gle";
 boolean result = Pattern.matches(patternStr, str);
 if (result) {
  System.out.println("字符串" + str + "匹配模式" + patternStr + "成功");
 } else {
  System.out.println("字符串" + str + "匹配模式" + patternStr + "失败");
 }
}
通配符[]中的-
-表示从..到…,如[a-e]等同于[abcde]
 String[] dataArr = { "Tan", "Tbn", "Tcn", "Ton","Twn"};
    for (String str : dataArr) {
      String regex = "T[a-c]n";
      boolean result = Pattern.matches(regex, str);
      if (result) {
        System.out.println("字符串" + str + "匹配模式" + regex + "成功");
      } else {
        System.out.println("字符串" + str + "匹配模式" + regex + "失败");
      }
    }
Pattern类的方法简述
    
        
            | 方法 | 说明 | 
        
            | static Pettern compile(String regex,int flag) | 编译模式,参数regex表示输入的正则表达式,flag表示模式类型(Pattern.CASE_INSENSITIVE 表示不区分大小写) | 
        
            | Matcher match(CharSequence input) | 获取匹配器,input时输入的待处理的字符串 | 
        
            | static boolean matches(String regex, CharSequence input) | 快速的匹配调用,直接根据输入的模式regex匹配input | 
        
            | String[] split(CharSequence input,int limit) | 分隔字符串input,limit参数可以限制分隔的次数 | 
    
模式类型Pattern.CASE_INSENSITIVE
正则表达式默认都是区分大小写的,使用了Pattern.CASE_INSENSITIVE则不对大小写进行区分.
 String patternStr="ab";
    Pattern pattern=Pattern.compile(patternStr, Pattern.CASE_INSENSITIVE);
    
    String[] dataArr = { "ab", "Ab", "AB"};
    
    for (String str : dataArr) {
      Matcher matcher=pattern.matcher(str);
      
      if(matcher.find()){
        System.out.println("字符串" + str + "匹配模式" + patternStr + "成功");
      }
    }
Pattern的split方法示例
 注意这里要把复杂的模式写在前面,否则简单模式会先匹配上.
String input="职务=GM 薪水=50000 , 姓名=职业经理人 ; 性别=男  年龄=45 ";
    String patternStr="(\\s*,\\s*)|(\\s*;\\s*)|(\\s+)";
    Pattern pattern=Pattern.compile(patternStr);
    
    String[] dataArr=pattern.split(input);
    
    for (String str : dataArr) {
      System.out.println(str);
    }
Matcher类的方法简述
    
        
            | 方法 | 说明 | 
        
            | boolean matches() | 对整个输入字符串进行模式匹配. | 
        
            | boolean lookingAt() | 从输入字符串的开始处进行模式匹配 | 
        
            | boolean find(int start) | 从start处开始匹配模式 | 
        
            | int groupCount() | 返回匹配后的分组数目 | 
        
            | String replaceAll(String replacement) | 用给定的replacement全部替代匹配的部分 | 
        
            | String repalceFirst(String replacement) | 用给定的replacement替代第一次匹配的部分 | 
        
            | Matcher appendReplacement(StringBuffer sb,String replacement) | 根据模式用replacement替换相应内容,并将匹配的结果添加到sb当前位置之后 | 
        
            | StringBuffer appendTail(StringBuffer sb) | 将输入序列中匹配之后的末尾字串添加到sb当前位置之后. | 
    
匹配示例一:XML元素文字解析
String regex="<(\\w+)>(\\w+)</\\1>";
Pattern pattern=Pattern.compile(regex);
    
String input="<name>Bill</name><salary>50000</salary><title>GM</title>";
    
Matcher matcher=pattern.matcher(input);
    
while(matcher.find()){
      System.out.println(matcher.group(2));
}
替换实例一:将单词和数字部分的单词换成大写
    String regex="([a-zA-Z]+[0-9]+)";   
    Pattern pattern=Pattern.compile(regex);
    
    String input="age45 salary500000 50000 title";
    
    Matcher matcher=pattern.matcher(input);
    
    StringBuffer sb=new StringBuffer();
    
    while(matcher.find()){
      String replacement=matcher.group(1).toUpperCase();
      matcher.appendReplacement(sb, replacement);
    }
    matcher.appendTail(sb);
    
    System.out.println("替换完的字串为"+sb.toString());