正则验证
@Test
public void verify(){
String str = "abc_123";
//数字字母下划线至少出现一次
boolean rst = str.matches("\\w+");
System.out.println(rst);
}
结果:
正则分割
@Test
public void spllit(){
String str = "adf.dasf-sdf;sdf";
//分割标志.或-或;
String[] split = str.split("\\.|;|-");
for (String s : split) {
System.out.println(s);
}
}
结果
正则替换
@Test
public void change(){
String str = "我##爱$$...中--国";
//去除中间的杂乱字符
String str1 = str.replaceAll("[#$.-]", "");
System.out.println(str1);
}
结果:
正则分组
@Test
public void grouping(){
//hanset,apple;computer,huoying;pingban,apple;
String str = "1,handset,iphone,8000;2,handset,sanxing,7000;3,handset,xiaomi,6500;";
// String regex = "(\\d+),([a-z]),([a-z]+(\\d+?)),(\\d);";
String regex = "(\\d+),([a-z]+),([a-z]+(\\d+)?),(\\d+);";
Pattern pattern1 = Pattern.compile(regex);
String regexCmm = "\\d+(.*?);";
Pattern pattern = Pattern.compile(regexCmm);
Matcher matcher = pattern.matcher(str);
int start = 0;
//进行第一次分组
while (matcher.find(start)){
String cmm = matcher.group(0);
Matcher matcher1 = pattern1.matcher(cmm);
//组内继续分组
if (matcher1.find()){
String cmmId = matcher1.group(1);
String cmmType = matcher1.group(2);
String cmmName = matcher1.group(3);
String cmmPrice = matcher1.group(5);
System.out.println("编号: "+cmmId);
System.out.println("类型: "+cmmType);
System.out.println("名称: "+cmmName);
System.out.println("价格: "+cmmPrice);
}
start = matcher.end();
}
System.out.println(matcher.matches());
}
实现效果: