Java 正则表达式 测试过

来源:互联网 发布:oflademo 源码 编辑:程序博客网 时间:2024/05/22 14:51

 

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

public class Reg {

 public static void main(String args[]){
  String[] dataArr = { "moson", "mon", "smson", "mon" };
  
  String patternStr=".*m(o+s+o+)n";  //* 表示零次或多次  +表示一次或多次
  boolean result = Pattern.matches(patternStr, dataArr[0]);
  if (result) {
   System.out.println("字符串"+dataArr[0]+"匹配模式"+patternStr+"成功");
  }else{
   System.out.println("字符串"+dataArr[0]+"匹配模式"+patternStr+"失败");
  }
  
  patternStr=".?m(o+)n";  //? 表示一次或零次
  result = Pattern.matches(patternStr, dataArr[1]);
  if (result) {
   System.out.println("字符串"+dataArr[1]+"匹配模式"+patternStr+"成功");
  }else{
   System.out.println("字符串"+dataArr[1]+"匹配模式"+patternStr+"失败");
  }
  
  patternStr=".+m(o+)n";
  result = Pattern.matches(patternStr, dataArr[2]);
  if (result) {
   System.out.println("字符串"+dataArr[2]+"匹配模式"+patternStr+"成功");
  }else{
   System.out.println("字符串"+dataArr[2]+"匹配模式"+patternStr+"失败");
  }
  
  patternStr="m(o+)n";
  result = Pattern.matches(patternStr, dataArr[3]);
  if (result) {
   System.out.println("字符串"+dataArr[3]+"匹配模式"+patternStr+"成功");
  }else{
   System.out.println("字符串"+dataArr[3]+"匹配模式"+patternStr+"失败");
  }
  
  
  System.out.println("---------test[]------------------");
  String[] dataArr1 = {"ban","ben","bin","bon","bun","byn","baen"};
  
  patternStr="b[aeoy]+n"; //表示匹配[]中任意一个字符,注意,只能是一个,此处可通过添加+来增加
  
  for (String str : dataArr1) {
   boolean result1 = Pattern.matches(patternStr, str);
   if (result1) {
    System.out.println("字符串"+str+"匹配模式"+patternStr+"成功");
   }
   else{
    System.out.println("字符串"+str+"匹配模式"+patternStr+"失败");
   }
  }
  
  System.out.println("---------test()------------------");
  String[] dataArr2 = {"ban","ben","bin","bon","bun","byn","baen"};
  
  patternStr="b(ae|o)n"; //表示匹配()中多个字符,可通过|来添加匹配
  
  for (String str : dataArr2) {
   boolean result2 = Pattern.matches(patternStr, str);
   if (result2) {
    System.out.println("字符串"+str+"匹配模式"+patternStr+"成功");
   }
   else{
    System.out.println("字符串"+str+"匹配模式"+patternStr+"失败");
   }
  }

  System.out.println("---------test - ------------------");
  String[] dataArr3 = { "1", "10", "101", "1010" ,"100+"};
  patternStr="[0-9]+";
  for (String str : dataArr3) {
   boolean result3 = Pattern.matches(patternStr, str);
   if (result3) {
    System.out.println("字符串"+str+"匹配模式"+patternStr+"成功");
   }
   else{
    System.out.println("字符串"+str+"匹配模式"+patternStr+"失败");
   }
  }
  
  System.out.println("---------test '\'d ------------------");
  String[] dataArr4 = { "1", "10", "101", "1010" ,"100+"};
  for (String str : dataArr4) {
  patternStr="\\d+"; //\\d代表数字
  boolean result4 = Pattern.matches(patternStr, str);
  if (result4) {
  System.out.println("字符串"+str+"匹配模式"+patternStr+"成功");
  }
  else{
  System.out.println("字符串"+str+"匹配模式"+patternStr+"失败");
  }
  }


  System.out.println("---------test String split ------------------");
  String str1="薪水,职位 姓名;年龄 性别";
  String[] dataArr5 =str1.split("[,\\s;]"); //String中可以使用split,\\s表示空格
  for (String strTmp : dataArr5) {
   System.out.println(strTmp);
  }
  
  System.out.println("---------test '\'w ------------------");
  String[] dataArr6 = { "a100", "b20", "c30", "df10000" ,"gh0t"};
  for (String str : dataArr6) {
   patternStr="\\w+\\d+";
   boolean result6 = Pattern.matches(patternStr, str);
   if (result6) {
   System.out.println("字符串"+str+"匹配模式"+patternStr+"成功");
   }
   else{
   System.out.println("字符串"+str+"匹配模式"+patternStr+"失败");
   }
  }

  System.out.println("--------- Pattern split 分割 ------------------");
  String str="2007年12月11日";
  Pattern p = Pattern.compile("[年月日]");
  String[] dataArr7 =p.split(str); //使用正则分割
  for (String strTmp : dataArr7) {
   System.out.println(strTmp);
  }

  System.out.println("--------- String replaceAll ------------------");
  str="10元 1000人民币 10000元 100000RMB";
  str=str.replaceAll("(元|人民币|RMB)", "¥"); //String的replaceAll采用正则替换
  System.out.println(str);

  System.out.println("--------- String find 依次往下查找匹配的对象 ------------------");
  p = Pattern.compile("m(o+)n",Pattern.CASE_INSENSITIVE);
  // 用Pattern类的matcher()方法生成一个Matcher对象
  Matcher m = p.matcher("moon mooon Mon mooooon Mooon");
  StringBuffer sb = new StringBuffer();
  // 使用find()方法查找第一个匹配的对象
  boolean result8 = m.find();
  // 使用循环找出模式匹配的内容替换之,再将内容加到sb里
  while (result8) {
   m.appendReplacement(sb, "moon");
   result8 = m.find();
  }
  // 最后调用appendTail()方法将最后一次匹配后的剩余字符串加到sb里;
  m.appendTail(sb);
  System.out.println("替换后内容是" + sb.toString());

  System.out.println("--------- String goup ------------------");
  String s = "person[0].name";
  Pattern pattern = Pattern.compile("[a-z|0-9]+\\[\\d+\\].[a-z|0-9]+");
  Matcher matcher = pattern.matcher(s);
  boolean b = Pattern.matches("[a-z|0-9]+\\[\\d+\\].[a-z|0-9]+",s);
  System.out.println(b);
  pattern = Pattern.compile("\\[\\d+\\]");
  matcher = pattern.matcher(s);
  if(matcher.find()){
   System.out.println(matcher.group(0));
  }
  
  System.out.println("--------- String goup ------------------");
  String regex="([a-zA-Z]+[0-9]+)";
  pattern=Pattern.compile(regex);
  //String input="age45 salary500000 50000 title";
  String input="age45";
  matcher=pattern.matcher(input);
  sb=new StringBuffer();
  while(matcher.find()){
   System.out.println(matcher.group(1));
   String replacement=matcher.group(1).toUpperCase();
   matcher.appendReplacement(sb, replacement);
  }
  matcher.appendTail(sb);
  System.out.println("替换完的字串为"+sb.toString());
 }
 
}

0 0
原创粉丝点击