Java 正则表达式 测试过

 

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());
 }
 
}

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看READme.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 、 1资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看READmE.文件(md如有),本项目仅用作交流学习参考,请切勿用于商业用途。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值