import org.junit.Test;
import com.iit.util.StrUtils;
import org.junit.Test;
public class TestReplace0 {
String src1="2022,I'm study java17";
String src2="1985年windows来了,2000年windowME发布;目前是Windows10";
String src3="abbacffcefggfghhjj";
String src4="Awin7,BwinXp,Awindow Cwin";
String src5="12人买34斤白菜花567元8角9分";
@Test
public void test1(){
String title ="找出src1中所有数字";
String rule="\\d";
StrUtils.findAll(title,src1,rule);
}
@Test
public void test2(){
String title1="将src1中所有空白替换为*";
String s1=src1.replaceAll("\\s","*");
String title2 ="将src1中所有非空白替换为*";
String s2=src1.replaceAll("\\S","*");
System.out.println("s1="+s1);
System.out.println("s2="+s2);
}
@Test
public void test3(){
String title1="将src1中所有单词字符替换为*";
String s1= src1.replaceAll("\\w","*");
String title2="将src1中的所有非单词字符替换为*";
String s2=src1.replaceAll("\\W","*");
System.out.println("s1="+s1);
System.out.println("s2="+s2);
}
@Test
public void test4(){
String title1="将src1中所有数字字符替换为*";
String s1= src1.replaceAll("\\d","*");
String title2="将src1中的所有非单词字符替换为*";
String s2=src1.replaceAll("\\D","*");
System.out.println("s1="+s1);
System.out.println("s2="+s2);
}
@Test
public void test5(){
String title1="将src1中所有字符替换为*";
String s1= src1.replaceAll(".","*");
System.out.println("s1="+s1);
} @Test
public void test6(){
String title1="将src1中指定字符替换为*";
String s1= src1.replaceAll("[20ja]","*");
System.out.println("s1="+s1);
String title2="将src1中所有数字 替换为*";
String s2= src1.replaceAll("[0123456789]","*");
System.out.println("s2="+s2);
String title3="将src1中所有数字和字母替换为*";
String s3= src1.replaceAll("[0-9a-zA-Z]","*");
System.out.println("s3="+s3);
}public void test6b(){
String title1="将src1中不是【1234win】的字符替换为*";
String s1= src2.replaceAll("[^1234win]","*");
System.out.println("s1="+src2);
System.out.println("s1="+s1);
}
@Test
public void test7(){
String title1="找出src1中所有两个数字";
StrUtils.findAll(title1,src1,"\\d{2}");
String title2="找出src1中所有连续2-4 个数字";
StrUtils.findAll(title2,src1,"\\d{2,4}");
String title3="找出src1中所有年份";
StrUtils.findAll(title3,src1,"\\d{4}");
}@Test
public void test8(){
String title1="找出src3中0个或者1个数字替换为*";
String s1=src3.replaceAll("\\d?","*");
System.out.println("s0="+src3);
System.out.println("s1="+s1);
}
@Test
public void test9(){
String title1="将src中的【来了】和【发布】更换为*";
String s1 =src2.replaceAll("来了" ,"*");
System.out.println("s1="+s1);
}
@Test
public void test10(){
String title1="将src中的[win|20]更换为*";
String s1 =src2.replaceAll("[win|20]" ,"*");
System.out.println("s0="+src2);
System.out.println("s1="+s1);
}
@Test
public void test11(){
String title1="在src3中找出所有满足ab+条件的字符";
StrUtils.findAll(title1,src3,"ab+");
StrUtils.findAll(title1,src3,"(ab)+");
}
@Test
public void test12(){
String title1="在src3中ab开头的字符替换为*";
String s1 =src3.replaceAll(" ^ab","*");
System.out.println("s0="+src3);
System.out.println("s1="+s1);
String title2="在src3中ab结尾的字符替换为*";
String s2 =src3.replaceAll("ab$","*");
System.out.println("s2="+s2);
String title3="在src3中所有ab的字符替换为*";
String s3 =src3.replaceAll("^ab$","*");
System.out.println("s3="+s3);
}
@Test
public void test13(){
String title1="在src4中单词win的字符替换为*";
String s1 =src4.replaceAll(" win\\B","*");
System.out.println("s0="+src4);
System.out.println("s1="+s1);
}
@Test
public void test14(){
String title1="在src4中单词win替换为*,不区分大小写";
String s1 =src4.replaceAll("(?i) win","*");
System.out.println("s0="+src4);
System.out.println("s1="+s1);
}
@Test
public void test15(){
String title1="在src3中单词【ab】替换为*,b要尽量多";
String s1 =src3.replaceAll("ab","*");
System.out.println("s0="+src3);
System.out.println("s1="+s1);
} @Test
public void test16(){
String title="在src5中与金额相关的数字提取出来";
StrUtils.findAll(title,src5,"\\d(?=元|角|分)");
}
@Test
public void test17(){
String title1="以A打头的win替换为*";
String s1=src4.replaceAll("(?<=A)=win","*");
System.out.println("s0="+src4);
System.out.println("s1="+s1);
}
@Test
public void test18(){
String title=" 将src5中的金额和数字取出来并以'金额-单位'形式打印出来";
StrUtils.findAll(title,src5,"(?<g1>\\d+)(?<g2>[分元角])");
//现在是当作整体来处理的
}
@Test
public void test19(){
String title=" 将src3中满足'ABBA'模式的字符串提取出来";
StrUtils.findAll(title,src3,"(.)(.)\\2\\1");
//现在是当作整体来处理的
}
}
package com.iit.util;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class StrUtils {
public static List<String>findAll(String title,String src,String regex){
System.out.println("标题"+title);
System.out.println("s0="+src);
Pattern p=Pattern.compile(regex,Pattern.DOTALL);
Matcher m=p.matcher(src);
List<String>list=new ArrayList<>();
while(m.find()){
String findStr=m.group(0);
list.add(findStr);
if(m.groupCount()>=2){
String g1=m.group(1);
String g2=m.group(2);
String msg= String.format("%s-%s",g1,g2);
System.out.println("输出:"+msg);
}
}
System.out.println("s1="+ Arrays.toString(list.toArray()));
return list;
}}
// public static String currentDateTime(String format){}
// public static boolean isBlank(String src){}
//}