正则验证
@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());
}
实现效果:

本文介绍了正则表达式的四种实用场景:验证、分割、替换及分组,并提供了详细的Java代码示例,帮助读者理解如何在实际编程中运用正则表达式解决常见问题。
451

被折叠的 条评论
为什么被折叠?



